Собственно столкнулся с сабжем и что не получилось нормально настроить. Прочитал 100500 статей, но нигде толком не объясняется, как же таки нормально настроить tomcat и ssl.У меня есть
rootca.crt, intermediate.crt, server.crt, private.key
Везде, где видел в keystore добавляли только сертификаты, но не сам private key. Пока что частично получилось настроить так
$ openssl pkcs12 -export -in jira.example.net.crt -inkey jira.example.net.key > jira.example.net.p12$ keytool -importkeystore -srckeystore /opt/jira/jira.example.net.p12 -destkeystore /opt/jira/jira.jks -srcstoretype pkcs12
$ keytool -importcert -alias intermediateca -keystore /opt/jira/jira.jks -trustcacerts -file /opt/jira/sub.class1.server.ca.crt
$ keytool -importcert -alias rootca -keystore /opt/jira/jira.jks -trustcacerts -file /opt/jira/rootca.crt
В итоге получаю
$ keytool -list -keystore /opt/jira/jira.jks
Enter keystore password:Keystore type: JKS
Keystore provider: SUN
Your keystore contains 3 entries
rootca, Jun 23, 2015, trustedCertEntry,
Certificate fingerprint (SHA1): 3E:2B:F7:F2:03:1B:96:F3:8C:E6:C4:D8:A8:5D:3E:2D:58:47:6A:0F
intermediateca, Jun 23, 2015, trustedCertEntry,
Certificate fingerprint (SHA1): F6:91:FC:87:EF:B3:13:53:54:22:5A:10:E1:27:E9:11:D1:C7:F8:CF
1, Jun 23, 2015, PrivateKeyEntry,
Certificate fingerprint (SHA1): F2:CE:0D:6F:D7:71:DF:57:41:96:A9:48:EB:CA:6C:94:C9:C5:4E:F0
Затем в контейнере указываю jira.jks
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxHttpHeaderSize="8192" SSLEnabled="true"
maxThreads="150" minSpareThreads="25"
keystoreFile="/opt/jira/jira.jks" keystorePass="7654321" keystoreType="JKS"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" useBodyEncodingForURI="true"
/>
И вроде как работает, по крайней мере в проводнике, но если проверять из командной строки, то получаю
# openssl s_client -connect jira.example.net:8443
CONNECTED(00000003)
depth=0 C = UA, CN = jira.example.net, emailAddress = webmaster@example.net
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C = UA, CN = jira.example.net, emailAddress = webmaster@example.net
verify error:num=27:certificate not trusted
verify return:1
depth=0 C = UA, CN = jira.example.net, emailAddress = webmaster@example.net
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/C=UA/CN=jira.example.net/emailAddress=webmaster@example.net
i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 1 Primary Intermediate Server CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIHKDCCBhCgAwIBAgIHBQAf14IL/TANBgkqhkiG9w0BAQsFADCBjDELMAkGA1UE
Я так понимаю, что я что то упускаю, но не могу понять что. По техническим причинам терминирование ssl нельзя вынести на apache/nginx/etc.