Я переношу свой единственный сервер tomcat в кластер, балансирую нагрузку и кэширую Apache HTTPD (обратный прокси с mod_proxy). Можно ли преобразовать сертификат и ключи в формат апача или мне нужно перевыпустить все это?
Как я могу перенести SSL с Tomcat на Apache HTTPD?
Ответы (1)
Извлечь сертификаты напрямую с помощью keytool
довольно просто, немного сложнее извлечь закрытый ключ (хотя для этого можно написать программы). Я бы предложил использовать комбинацию keytool
и openssl
.
Если ваше хранилище ключей имеет формат PKCS#12 (файл .p12), пропустите этот шаг. Преобразуйте свой магазин JKS в магазин PKCS12, используя keytool
(нужна версия от Java 6+)
keytool -importkeystore -srckeystore thekeystore.jks \
-srcstoretype JKS \
-destkeystore thekeystore.p12 \
-deststoretype PKCS12
Затем извлеките сертификат с помощью openssl:
openssl pkcs12 -in thekeystore.p12 -clcerts -nokeys -out servercert.pem
Извлеките закрытый ключ:
umask 0077
openssl pkcs12 -in thekeystore.p12 -nocerts -nodes -out serverkey.pem
umask 0022
Обратите внимание, что, поскольку при извлечении закрытого ключа используется параметр -nodes
, файл закрытого ключа не будет защищен (поскольку он не должен иметь пароля для использования Apache Httpd), поэтому убедитесь, что никто другой не сможет его прочитать. .
Затем настройте Apache Httpd, используя SSLCertificateFile
и SSLCertificateKeyFile
, чтобы указать на файл сертификата и файл закрытого ключа соответственно.