Веб сервер: Glassfish 5
Центр сертификации: startssl.com
1. Генерирую ключ с алиасом kidstore.ml в keystore.jks.
keytool -genkey -alias kidstore.ml -keyalg RSA -keypass changeit -storepass changeit -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks" -keysize 2048
Терминал
andrei@kidstore:~/glassfish5/glassfish/domains/domain1/config$ keytool -genkey -alias kidstore.ml -keyalg RSA -keypass changeit -storepass changeit -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks" -keysize 2048
What is your first and last name?
[Unknown]: kidstore.ml
What is the name of your organizational unit?
[Unknown]: kidstore.ml
What is the name of your organization?
[Unknown]: kidstore.ml
What is the name of your City or Locality?
[Unknown]: Kremenchuk
What is the name of your State or Province?
[Unknown]: Poltava Region
What is the two-letter country code for this unit?
[Unknown]: UA
Is CN=kidstore.ml, OU=kidstore.ml, O=kidstore.ml, L=Kremenchuk, ST=Poltava Region, C=UA correct?
[no]: yes
2. Делаю сертификат kidstore.csr из сгенерированого выше ключа.
keytool -certreq -alias kidstore.ml -file "/home/andrei/kidstore.csr" -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks"
Содержимое сертификата (расшифровку можно посмотреть здесь https://www.sslshopper.com/csr-decoder.html или на скрине ниже)
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIC8jCCAdoCAQAwfTELMAkGA1UEBhMCVUExFzAVBgNVBAgTDlBvbHRhdmEgUmVnaW9uMRMwEQYD
VQQHEwpLcmVtZW5jaHVrMRQwEgYDVQQKEwtraWRzdG9yZS5tbDEUMBIGA1UECxMLa2lkc3RvcmUu
bWwxFDASBgNVBAMTC2tpZHN0b3JlLm1sMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
gVIr6ZeyjxDIwuhGKd22syPzGElUwoFAZ2gDGFi+P2fHFAWNXHv2LgZ4+k6URWNUL+XogEWThiUd
iUR17CUs+a/8qwFr2MTL1dku7c3XhDP2ft+FApRipf7xo1Vhd/5pn47y/NNMbqasWUV9hukJKcD3
bWqIUSiTYHHCSZerCA5QWJx2d1ORRfePGHTJEuYp+9PPuZFGTr3aoE+bkg5esTeR1toH+hd3qENM
qBk7GKY08gbrWpNVfkdGk06iewIbg+/WhrUDXr5y31XD8gZXo9QIcJ8plDtWrEKlMPGlx82NSnGE
MbdJSX/ygFZfHXAONYJ4fAfREg9MVtEh3tCtoQIDAQABoDAwLgYJKoZIhvcNAQkOMSEwHzAdBgNV
HQ4EFgQUrKj0ADf9rLG4VPEYi0OM/X6B9TgwDQYJKoZIhvcNAQELBQADggEBACs8I/hiZ4O7DNDx
WZOMOJPt54s1Ojr2/O9z2UT7H96ETuEbu2gueCUB5RRVmlMMn3aaFvwzA3iLT/9eZMfiir+JYz5z
mYwjz9M291ET72SiwwyfWHZJcd8KHCZMeeAK6OQdcXvU4KW3YYK/1pXDeuWxaLXe2HD8Ea4Mu7/i
la0JKOIc6aHzmx1kgTvmb+gFy2r0OBFV7nocI07DDPlLCcFlZzIKto1ojIOq+b/lh02W13bpAAUS
bK0UttQnaH1ur9it9bQaQfYoNZtFnzSTvkZdlcY2aLjdwLzRxNExo8aIRoGATx/jn7g33WDO9gVN
gTOsFK0Y2JEacXlZh/XVusY=
-----END NEW CERTIFICATE REQUEST-----
http://rghost.net/8ljJyFSmV.view3. В центре сертификации вставляю этот сертификат.
http://rghost.net/85JJZkBR2.view
4. Присылают архив с тремя файлами:
- root.crt
- 1_Intermediate.crt
- 2_kidstore.ml.crt
http://rghost.net/6rGPnnTGw.view
5. Добавляю первые два в cacerts.jks, третий в keystore.jks
keytool -import -alias root -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/cacerts.jks" -trustcacerts -file "/home/andrei/startssl/root.crt"
keytool -import -alias intermediate -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/cacerts.jks" -trustcacerts -file "/home/andrei/startssl/1_Intermediate.crt"
keytool -import -alias kidstore.ml -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks" -trustcacerts -file "/home/andrei/startssl/2_kidstore.ml.crt"
первые две вставки проходят успешно, на третей вставке получаю ошибку
keytool error: java.lang.Exception: Failed to establish chain from reply
Нашел такую тему http://stackoverflow.com/questions/22203627/glassfish-3-and-import-signed-ssl... с той же ошибкой
добавляю в keystore.jks root.crt
keytool -import -v -trustcacerts -alias root -file "/home/andrei/startssl/root.crt" -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks"
повторно добавляю 2_kidstore.ml.crt в keystore.jks
keytool -import -alias kidstore.ml -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks" -trustcacerts -file "/home/andrei/startssl/2_kidstore.ml.crt"
та же ошибка
keytool error: java.lang.Exception: Failed to establish chain from reply
методом тыка понимаю что проблема в дубликации алиаса kidstore.ml в keystore.jks. Во всех мануалах пишут о необходимости соответствия алиаса с именем файла.
Меняю этот keystore.ml на нульцевый. В чистый keystore.jks добавляю
keytool -import -alias kidstore.ml -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks" -trustcacerts -file "/home/andrei/startssl/2_kidstore.ml.crt"
keytool -import -v -trustcacerts -alias root -file "/home/andrei/startssl/root.crt" -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks"
Далее открываю domain.xml и во всем файле меняю имя стандартного сертификата s1as на kidstore.ml, включаю Glassfish, сайт не открывается, mozilla пишет Secure Connection Failed, chrome пишет ERR_CONNECTION_CLOSED. В логах Glassfish-а пусто.
Снова удаляю keystore.jks. Добавляю самоподписной сертификат
keytool -genkey -alias kidstore.ml -keyalg RSA -keypass changeit -storepass changeit -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks" -keysize 2048
Терминал
andrei@kidstore:~$ keytool -genkey -alias kidstore.ml -keyalg RSA -keypass changeit -storepass changeit -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks" -keysize 2048
What is your first and last name?
[Unknown]: kidstore.ml
What is the name of your organizational unit?
[Unknown]: kidstore.ml
What is the name of your organization?
[Unknown]: kidstore.ml
What is the name of your City or Locality?
[Unknown]: Kremenchuk
What is the name of your State or Province?
[Unknown]: Poltava Region
What is the two-letter country code for this unit?
[Unknown]: UA
Is CN=kidstore.ml, OU=kidstore.ml, O=kidstore.ml, L=Kremenchuk, ST=Poltava Region, C=UA correct?
[no]: yes
На самоподписном, по сути, таком же сертификате работает.
Добавление к самоподписному в keystore.jks
keytool -import -alias root -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks" -trustcacerts -file "/home/andrei/startssl/root.crt"
keytool -import -alias intermediate -keystore "/home/andrei/glassfish5/glassfish/domains/domain1/config/keystore.jks" -trustcacerts -file "/home/andrei/startssl/1_Intermediate.crt"
проблемы сертифицированности не решает.
При добавлении в keystore.jks и cacerts.jks всех трех сертификатов, сайт не отображается.
Перед созданием темы искал ответ в гугле, вот статьи, но они или устаревшие или по-сути описывают выше проделаное, возможно они помогут.
http://www.axian.ru/blogs/weirdscience/how-to-add-an-existing-ssl-certificate...
https://askubuntu.com/questions/587683/glassfish-ssl-console-handshake-except...
http://stackoverflow.com/questions/12860289/import-ssl-certificate-in-glassfish
http://virtualmarc.info/glassfish-startssl-zertifikate/
http://chaosben.blogspot.com/2012/11/glassfish-3-ssl-mit-kostenlosem.html
Что делать?