Apache и SSL сертификати

Вече съм писал веднъж как се инсталират SSL сертификати под различни web сървъри.

В случай, че имате Apache 2 сървър и SSL частен ключ с парола при всяко стартиране на Apache ще излиза съобщение като това:

 

Това е secure, но със сигурност inconvenient в повечето случаи. Има (поне) два варианта за решение:

 

1. Може да се махне паролата на сертификата като се използва информацията от bloga на Chris Schuld и OpenSSL

Не съм го пробвал, но би трябвало да работи според коментарите

2. Автоматично да се извлича паролата от stdin с допълнително приложение – информацията намерих във форума на LinuxQuestions

В httpd-ssl.conf се подменя начина да запитване за парола от bultin на изпълним файл

 

 

а самия изпълним файл е нещо от сорта на (Apache трябва да има права да изпълни файла):

 

 

И двата метода намаляват сигурността на частния ключ – в единия случай премахваме паролата от файла, в другия предоставяме паролата в относително plain text. Въпрос на избор 🙂

SSL Certificate за IIS/ Apache/ Tomcat

Как да си инсталираме SSL сертификата на уеб сървърите. Още повече, ако сертификатът е wildcard, сървърите са различни и го имаме като двойак частен ключ + сертификат

Нека за по-ясно това са файловете, които получаваме от CA:

private.key – частен ключ

certificate.crt – сертификат

и двата файла са в PEM формат. Първа стъпка е да инсталираме OpenSSL за нашата OS/ платформа от www.openssl.org

IIS

 

 

Въвежда се парола за резултатния сертификат и готово! 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

Сваля се следния файл ImportKey.java и се компилира с Java 1.5+. Следваща стъпк а е да се изпълни следното:

Ако сме под Windows файлът се създава в папката на текущия потребител, например: C:UsersAdministratorkeystore.ImportKey. В конфигурацията на Tomcat 5.0 (server.xml) трябва да се доави Connector секция, за да работи 443-ти порт като https

 

Рестартира се Tomcat и вече всичко трябва да работи нормално

Tomcat 7.0

Конфигурирането е по-лесно и се указва директно частен ключ и сертификат. Използва се същата схема както и в Apache 2

Tomcat трябва да се рестартира, за да влязат промените в сила.

Apache 2

Конфигурацията тук е най-лесна. Само се указва частния ключ и сертификата в httpd.conf (или ssl.conf) и се пуска SSL поддръжка

SSLCertificateFile (сертификат) и SSLCertificateKeyFile (частен ключ)

Ако има intermediate CA, то пътя до него се записва в SSLCertificateChainFile

След това е нужно да се рестартира Apache, например с

 

Генериране на частен ключ от PFX и премахване на паролата