Назад | Перейти на главную страницу

Как обновить сертификат SSL с помощью Tomcat 5.5

Мой клиент работает под управлением Tomcat 5.5 и использует SSL. Срок их сертификата скоро истечет, и они купили продление. Мне дали файл .cer и попросили обновить Tomcat.

Существующий 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="companyname.keystore" keyAlias="tomcat2" />

Я побежал %JAVA_HOME%\bin\keytool -list -keystore companyname.keystore

Keystore type: jks
Keystore provider: SUN

Your keystore contains 3 entries

root, Aug 7, 2007, trustedCertEntry,
Certificate fingerprint (MD5): 8F:5D:77:06:27:C4:98:3C:5B:93:78:E7:D7:7D:9B:CC
tomcat, Jun 12, 2007, keyEntry,
Certificate fingerprint (MD5): 33:80:6F:75:5A:B4:BC:C7:7A:7D:4F:3F:FA:C0:95:2F
tomcat2, Jun 14, 2008, keyEntry,
Certificate fingerprint (MD5): 0A:9B:73:6A:EE:2F:18:99:61:49:28:F3:CD:1E:DF:96

SSL по-прежнему работает, если я удалю запись с псевдонимом «tomcat». Я предполагаю, что это артефакт от предыдущего сертификата с истекшим сроком действия.

% JAVA_HOME% \ bin \ keytool -import -keystore имя компании.keystore -alias tomcat3 -file 2009cert.cer

Я обновил server.xml, чтобы установить keyAlias ​​на tomcat3. Когда я перезапускаю Tomcat, я вижу это в журнале:

SEVERE: Error initializing endpoint
java.io.IOException: Alias name tomcat3 does not identify a key entry
    at org.apache.tomcat.util.net.jsse.JSSE14SocketFactory.getKeyManagers(JSSE14SocketFactory.java:143)
    (etc.)

Когда я повторно запускаю команду keytool -list:

Keystore type: jks
Keystore provider: SUN

Your keystore contains 4 entries

root, Aug 7, 2007, trustedCertEntry,
Certificate fingerprint (MD5): 8F:5D:77:06:27:C4:98:3C:5B:93:78:E7:D7:7D:9B:CC
tomcat, Jun 12, 2007, keyEntry,
Certificate fingerprint (MD5): 33:80:6F:75:5A:B4:BC:C7:7A:7D:4F:3F:FA:C0:95:2F
tomcat3, Jul 21, 2009, trustedCertEntry,
Certificate fingerprint (MD5): 8E:9F:F9:52:7B:07:B1:DB:BF:F3:96:BD:5F:49:2E:9F
tomcat2, Jun 14, 2008, keyEntry,
Certificate fingerprint (MD5): 0A:9B:73:6A:EE:2F:18:99:61:49:28:F3:CD:1E:DF:96

Связано ли это с тем, что запись tomcat3 помечена как «trustCertEntry», а не «keyEntry»?

Что я делаю не так?

Тот факт, что он регистрируется как TrustedCert, может указывать на отсутствие ключа для tomcat3. Вероятно, новый сертификат был запрошен для существующего ключа tomcat2. Срок действия самих ключей не истекает, только сертификаты.

Вы можете запросить новый сертификат в любое время, либо сгенерировав новый запрос на подпись сертификата, либо повторно используя исходный. Любой из этих вариантов подходит. Сделайте резервную копию своего хранилища ключей, а затем импортируйте сертификат для псевдонима tomcat2.

%JAVA_HOME%\bin\keytool -import -keystore companyname.keystore -alias tomcat2 -file 2009cert.cer

После этого вы также захотите снова указать свой экземпляр tomcat на tomcat2.