Как да си инсталираме SSL сертификата на уеб сървърите. Още повече, ако сертификатът е wildcard, сървърите са различни и го имаме като двойак частен ключ + сертификат
Нека за по-ясно това са файловете, които получаваме от CA:
private.key – частен ключ
certificate.crt – сертификат
и двата файла са в PEM формат. Първа стъпка е да инсталираме OpenSSL за нашата OS/ платформа от www.openssl.org
IIS
|
openssl pkcs12 -export -out certificate.pfx -inkey private,key -in certificate.crt |
Въвежда се парола за резултатния сертификат и готово! pfx файла може да се инпортира в IIS и да се изпозлва като SSL сървърен сертификат
Apache Tomcat 5.0
В зависимост от версията на Tomcat се поддържа Java Key Store (JKS) или PKCS12. Аз не успях да подкарам директно pfx файла, затова се принудих да импортирам в JKS. Инструкции за това може да се намерят например на http://www.agentbob.info/agentbob/79-AB.html
Накратко – keytool инструмента не може да импортира директно частния ключ и трябва да се направи програмно. Първо конвертираме сертификатите в DER формат отново с OpenSSL
|
openssl pkcs8 -topk8 -nocrypt -in key.pem -inform PEM -out key.der -outform DER openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER |
Сваля се следния файл ImportKey.java и се компилира с Java 1.5+. Следваща стъпк а е да се изпълни следното:
|
user@host:~$ java ImportKey key.der cert.der Using keystore-file : /home/plamen/keystore.ImportKey One certificate, no chain. Key and certificate stored. Alias:importkey Password:importkey |
Ако сме под Windows файлът се създава в папката на текущия потребител, например: C:UsersAdministratorkeystore.ImportKey. В конфигурацията на Tomcat 5.0 (server.xml) трябва да се доави Connector секция, за да работи 443-ти порт като https
|
<Connector port="443" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" debug="0" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystore="C:keystorekeystore.ImportKey" keypass="importkey" /> |
Рестартира се Tomcat и вече всичко трябва да работи нормално
Tomcat 7.0
Конфигурирането е по-лесно и се указва директно частен ключ и сертификат. Използва се същата схема както и в Apache 2
|
<Connector port="443" maxHttpHeaderSize="8192" maxThreads="150" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" SSLEnabled="true" SSLCertificateFile="${catalina.base}confcert.crt" SSLCertificateKeyFile="${catalina.base}confprivate.key" /> |
Tomcat трябва да се рестартира, за да влязат промените в сила.
Apache 2
Конфигурацията тук е най-лесна. Само се указва частния ключ и сертификата в httpd.conf (или ssl.conf) и се пуска SSL поддръжка
SSLCertificateFile (сертификат) и SSLCertificateKeyFile (частен ключ)
Ако има intermediate CA, то пътя до него се записва в SSLCertificateChainFile
След това е нужно да се рестартира Apache, например с
Генериране на частен ключ от PFX и премахване на паролата
|
openssl pkcs12 -in cert.pfx -nocerts -out key.pem openssl rsa -in key.pem -out keynopass.pem -passin pass:temp_pass_on_previous_step |