Я пытаюсь защитить свое приложение eXist-db, а это значит, что единственный порт, который я должен оставить открытым, должен быть 8443 (для использования приложения WebDAV и admin). Это базовый безопасный порт eXist-db, открытый с момента установки. Он использует самозаверяющий сертификат. У меня нет проблем с заменой сертификата по умолчанию новым, но проблема в том, что я не могу это сделать с сертификатом, подписанным CA.Как правильно настроить SSL в Jetty с сертификатом CA?
Я пробовал:
sudo rm eXist-db/tools/jetty/etc/keystore
cat ServerCertificate.crt Alpiro-TrustProvider-IntermediateCA.crt Root.cer > cert-chain.txt
- Я очистил плохие концы линий и проверить каждый начинает сертификат на новой строке.
openssl pkcs12 -export -inkey my-app.key -in cert-chain.txt -out my-app.pkcs12
keytool -importkeystore -srckeystore my-app.pkcs12 -srcstoretype PKCS12 -destkeystore eXist-db/tools/jetty/etc/keystore
После перезагрузки я проверил соединение с: openssl s_client -connect xx.xx.xxx.xxx:8443
и все, кажется, хорошо. Я вижу, что есть мой доверенный сертификат, и соединение (handshake
) просто работает. Однако браузеры все еще утверждают, что это не надежное соединение.
Когда я пытаюсь что-то проверить по протоколу HTTPS с помощью XQuery, он бросает:
java.security.cert.CertificateException: No subject alternative names matching IP address xx.xx.xxx.xxx found …