Certifikát servera SSL v Tomcate na základe certifikátu z OpenSSL

Máte certifikát z OpenSSL: ako ho importnete do Tomcatu, aby sa dal použiť pri SSL?

Mali by ste mať:

  • certifikát servera (.crt), ktorý začína:

    -----BEGIN CERTIFICATE-----
    
  • privátny kľúč servera (.key), ktorý začína:

    -----BEGIN PRIVATE KEY-----
    
  • reťazec (chain) certifikačných autorít, ktoré overujú vydaný certifikát servera. Súbor by mal obsahovať viacero blokov začínajúcich s -----BEGIN CERTIFICATE-----.

Súbory nech sa volajú postupne:

  • hostname.crt
  • hostname.key
  • hostname.chain.pem

Postup

  1. Pripojíme .crt súbor k súboru chain. (Je to potrebné kvôli ďalšiemu kroku.)

    cat hostname.crt hostname.chain.pem > hostname.all.chain.pem
    
  2. Z privátneho kľúča a reťazca certifikátov vytvoríme úložisko (keystore) privátneho kľúča a certifikátu (verejného kľúča) vo formáte PKCS#12:

    openssl pkcs12 -export -inkey hostname.key -in hostname.all.chain.pem -out hostname.p12
    
  3. OpenSSL si požiada heslo, ktorým bude chránený keystore:

    Loading 'screen' into random state - done
    Enter Export Password:
    Verifying - Enter Export Password:
    
  4. Keystore vo formáte PKCS#12 prevedieme na formát Java Keystore (JKS), ktorému dokáže porozumieť Tomcat. Použijeme na to nástroj keytool z JDK.

    keytool -importkeystore -srckeystore hostname.p12 -srcstoretype PKCS12 -destkeystore keystore.jks 
    
  5. keytool si vyžiada heslo, ktorým je chránený PKCS#12 keystore a požiada si nové heslo, ktorým ochráni keystore JKS.

    Enter destination keystore password:
    Enter source keystore password:
    Entry for alias 1 successfully imported.
    Import command completed:  1 entries successfully imported, 0 entries failed or cancelled
    
  6. Dvojica privátneho kľúča a certifikátu v JKS keystore bola uložená pod aliasom 1. Premenovať ho môžeme opäť pomocou keytool:

    keytool -changealias -alias 1 -keystore keystore.jks
    
  7. Nástroj si vyžiada cieľový alias a heslo, ktorým bol chránený keystore:

    Enter destination alias name:  odin.ics.upjs.sk
    Enter keystore password:
    
  8. Výsledný keystore potom môžeme použiť v Tomcate v konfigurácii <Connector>a pre SSL: stačí nastaviť cestu k súboru keystoru, alias a heslo.

    <Connector 
       port="8443" maxThreads="200"
       scheme="https" secure="true" SSLEnabled="true"
       keystoreFile="${user.home}/.keystore" keystorePass="changeit"
       clientAuth="false" sslProtocol="TLS"/>
    

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *