Мне нужно перенести с apache2 httpd на (на основе java) сервер vert.x 3. Apache2 HTTPD может быть успешно выполнен с использованием следующих трех сертификатов/ключевые файлы в ssl.conf (укороченные пути):Перенос с apache2 на vertx 3 при использовании ssl
<VirtualHost>
...
SSLCertificateFile certificate.cer
SSLCertificateKeyFile privatekey.key
SSLCertificateChainFile intermediate.cer
...
</VirtualHost>
Браузеры принятые соединение по протоколу HTTPS без жалоб.
После создания хранилища ключей для vert.x 3 и запустить его, браузер говорит мне:
www.mydomain.com uses an invalid security certificate.
The certificate is not trusted because the issuer certificate
is unknown. The server might not be sending the appropriate
intermediate certificates.
An additional root certificate may need to be imported.
Error code: SEC_ERROR_UNKNOWN_ISSUER
Тем не менее, браузер, кажется, получить сертификат сервера и правый промежуточный сертификат.
Как я могу узнать, какой корневой сертификат (из северных корневых сертификатов GeoTrust) используется хорошо работающей конфигурацией apache2 httpd? Должен ли я включить это в хранилище java?
Если да, то как httpd находит правильный корневой сертификат - и где?
Является ли папка .../mozilla правильным местом для получения корневых сертификатов для сервера (я думаю, что место только для сертификатов для использования браузером)?
Чтобы исключить альтернативное объяснение: Имеет ли vertx известную ошибку в ее функциональности ssl?
Было бы проще попытаться понять проблему, если бы вы могли представить простой пример кода, как настроить SSL в своем коде. –
Что значит «код»? Когда Vert.x 3 настроен на использование java keystore (.JKS), он принимает хранилище ключей и пароль: новые HttpServerOptions() .setSsl (истинные) .setKeyStoreOptions ( новые JksOptions() .setPath ("keystore.jks") .setPassword ("...") ) ); - или вы имели в виду под «кодом» сценарий bash, который использует openssl и keytool для создания хранилища java? <- это работает (промежуточный, сертификат и ключ - o.k.), за исключением того, что браузер дает код ошибки: SEC_ERROR_UNKNOWN_ISSUER. – Michael
Я хотел знать, используете ли вы хранилища ключей или сертификаты openssl, например, вы можете использовать существующие сертификаты openssl с помощью: 'vertx.createHttpServer (новый HttpServerOptions() .setSsl (true) .setPemKeyCertOptions (новый PemKeyCertOptions() .setKeyPath (" server-key.pem ") .setCertPath (" server-cert.pem ") ));' –