Certifier un site web en 2 minutes en suivant ce howto !

Sous-réserve de self signer le certificat ou d’avoir déjà acheté un contrat avec une autorité de certification.
Prenez un conteneur de servlet simple comme tomcat, et suivez ce howto à la lettre, vous aurez un résultat garanti :

  • Générer le keystore tomcat : keytool -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
  • Générer le truststore de l’app : keytool -genkey -keyalg RSA -alias "appalias" -keystore apptruststore.truststore -storepass "password" -validity 360
  • Renseigner ces infos pour être en conformité avec le dns :

    CN = appurl
    OU = DEPARTMENT
    O = COMPANY
    L = CITY
    ST = REGION
    C = COUNTRY

    (mot de passe « password »)
  • récupérer la root CA cert : wget http://secure.globalsign.com/cacert/gsorganizationvalg2.crt
  • ajouter le ca cert au keystore tomcat : keytool -import -alias root -keystore tomcat.keystore -trustcacerts -file gsorganizationvalg2.crt
  • générer un certificate signin request : keytool -certreq -keyalg RSA -alias appalias -file appsignrequest.csr -keystore apptruststore.truststore
    • submit chez globalsign le fichier .csr pour obtenir un .crt (avec éventuellement un .pem)

    OU en selfsigned :

    • keytool -gencert -storepass password -alias appalias -infile appsignrequest.csr -outfile appcertificate.crt -keystore apptruststore.truststore
    • keytool -importkeystore -srckeystore apptruststore.truststore -destkeystore appprivatekey.p12 -deststoretype PKCS12 -srcalias appalias
    • openssl pkcs12 -in appprivatekey.p12 -out appprivatekey.pem -nocerts
  • ajouter le .crt au truststore : keytool -import -alias appalias -keystore apptruststore.truststore -file appcertificate.crt
  • configurer tomcat-users.xml :
    <role rolename="secureconn"/>
    <user username="CN=appurl, OU=DEPARTMENT, O=COMPANY, L=CITY, ST=REGION, C=COUNTRY" password="password" roles="secureconn"/>
  • configurer le connector dans server.xml (clientAuth à false : pas d’authentification client sauf si requis par l’app) (un fichier certificate key .pem peut éventuellement être fourni par l’autorité de certification)
    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
    port="8443" enableLookups="true"
    acceptCount="100" connectionTimeout="20000"
    useURIValidationHack="false" disableUploadTimeout="true"
    scheme="https" secure="true" SSLEnabled="true"
    keystoreFile="/path/to/tomcat.keystore" keystorePass="tomcat"
    truststoreFile="/path/to/apptruststore.truststore" truststorePass="password"
    clientAuth="false" sslProtocol="TLS" SSLCertificateKeyFile="/path/to/appprivatekey.pem" SSLCertificateFile="/path/to/appcertificate.crt" />