Я провел некоторое исследование, чтобы узнать, как подготовить сертификат с подстановочными знаками и добавить его таким образом, чтобы его можно было использовать в WildFly / JBoss (я используя WildFly 16, но он должен быть таким же для JBoss.
Файлы, которые у меня есть (и какие они - собраны из Discerning GoDaddy SSL Cer Типы tificate ):
<серия чисел> .crt
: Мой сертификат gd_bundle-g2-g1.crt
: Пакеты сертификатов GoDaddy - G2 с перекрестием на G1, включает корневой gdig2.crt.pem
: Сертификат защищенного сервера GoDaddy (промежуточный сертификат) - G2 privatekey.txt
: Закрытый ключ для моего сертификата Благодаря серии исследований и помощи со стороны коллеги, Я обнаружил, что могу подготовить и добавить сертификаты с помощью следующих команд:
openssl pkcs12 -export -in <series of numbers>.crt -inkey privatekey.txt -out outfile.pkcs12 -name yourdomain.com -CAfile gd_bundle-g2-g1.crt -caname root
<enter a password>
keytool -importkeystore -trustcacerts -deststorepass <newpass> -destkeypass <newpass> -destkeystore new.keystore -srckeystore outfile.pkcs12 -srcstoretype PKCS12 -srcstorepass <password entered above> -alias yourdomain.com
Итак, все это работает, в любом случае из браузера. Я могу просматривать страницы, размещенные через WildFly, и они работают нормально, а браузер не сообщает об ошибках SSL. Однако имеющееся у меня приложение, использующее соединения WebSocket, не смогло проверить сертификат. Чтобы узнать об этом подробнее, я применил к своему сайту следующее:
openssl s_client -connect yoursite.yourdomain.com:443
Это привело к следующему:
Verification error: unable to verify the first certificate
Изучив это, я обнаружил, что Firefox выполнит «обнаружение сертификатов» и разрешит цепочку для проверки сертификата сервера, даже если он не был предоставлен. Итак, я пытаюсь определить, чего не хватает ...
Пытаясь решить эту проблему, я подозревал, что исключенные файлы необходимы для разрешения цепочки, но не мог легко определить, как их добавить. Я сделал несколько проб и ошибок и протестировал с openssl s_client каждый раз, пока я не выяснил, что работает. Это была серия команд, которые разрешили цепочку непосредственно с сервера:
cat <series of numbers>.crt gdig2.crt.pem > bundle.crt
openssl pkcs12 -export -in bundle.crt -inkey privatekey.txt -out outfile.pkcs12 -name yourdomain.com -CAfile gd_bundle-g2-g1.crt -caname root
<enter a password>
keytool -importkeystore -trustcacerts -deststorepass <newpass> -destkeypass <newpass> -destkeystore new.keystore -srckeystore outfile.pkcs12 -srcstoretype PKCS12 -srcstorepass <password entered above> -alias yourdomain.com
Простое добавление решило проблему. Надеюсь, это поможет сомоэнам!