Добавление сертификата wildcard ssl от Thawte в Tomcat
На днях столкнулся с добавлением покупных SSL сертификатов в Apache Tomcat, простой Apche подхватил сразу, а вот Каталина решила не удостоверять подписчика)))
Итак, все по-порядку:
Вообщем мне прислали 3 файла от Thawte:
cabundle.crt -- корневые сертификаты, их 2 внутри, они удостоверяют издателя server.crt -- wildcard SSL сертификат типа *.domain.ru (на все поддомены домена domain.ru) server.key -- приватный ключ wildcard сертификата
Установка в Apache прошла без проблем: <VirtualHost *:443> ServerName "sub.domain.ru" DocumentRoot "c:/www//www" php_admin_value upload_tmp_dir "c:/arp/wamp/www//mod-tmp" php_admin_value session.save_path "c:/arp/wamp/www//mod-tmp" AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml AddType application/x-httpd-php-source .phps AddDefaultCharset UTF-8 ScriptAlias /cgi-bin/ "c:/www//cgi-bin/" # php_admin_value open_basedir "c:/www//www"
SSLEngine On SSLCertificateFile "C:/www/ssl/server.crt" SSLCertificateKeyFile "C:/www/ssl/server.key" SSLCertificateChainFile "C:/www/ssl/cabundle.crt" </VirtualHost>
далее просто рестартуем Apache и все летает.
Tomcat оказался капризным и не принимал сертификат.
Вообщем так:
1. Подготавливаем ключ: openssl pkcs8 -topk8 -nocrypt -in server.key -inform PEM -out key.der -outform DER 2. Импортируем все сертификаты в windows в личное хранилище. 3. Затем выгружаем в файл сертификат вида *.domain.ru в формате PKCS#7, ставим галку включить в путь все сертификаты, в файл server.p7b > %JAVA_HOME%\bin\java ImportKey key.der server.p7b tomcat 5. В домашней папке пользователя программа создаст хранилище: /home/user/keystore.ImportKey -- в линукс, в винде: C:\user\{пользователь}\keystore.ImportKey Alias: tomcat Password: importkey 6. Переименовываем в .keystore, копируем хранилище в папку рядом с Tomcatom или сайтами и указываем Каталине путь на неё в server.xml:
<Connector port="443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="keys/.keystore" keypass="importkey" />
Рестартуем Котяру и наслаждаемся безопасным соединением!!!
|