SSL Labs: неправильный заказ, дополнительные сертификаты - PullRequest
0 голосов
/ 17 октября 2018

Я получаю сообщение об ошибке "Проблемы с цепочкой: неправильный заказ, дополнительные сертификаты" из https://www.ssllabs.com/ssltest/analyze.html?d=api.quotecrunchers.com при тестировании SSL для моего веб-сайта.

Я встроил механизм https в приложение весенней загрузки, используя следующее:

  1. Библиотека acme4j для связи с Let's Encrypt CA.

  2. Java-код для записи сертификата Let's Encrypt в хранилище ключей Java.

  3. Java-код, чтобы заставить встроенный сервер Tomcat подавать заявку на сертификатиз Let's Encrypt over HTTP, а затем перезапустите, используя HTTPS, как только он получит сертификат.

Я планирую открыть этот код с открытым исходным кодом, как только я его приведу в порядок.

В настоящее время я только достигаю рейтинга B, используя ssllabs.com

См. https://www.ssllabs.com/ssltest/analyze.html?d=api.quotecrunchers.com

Есть несколько проблем с моим https, но проблема у меняобеспокоен тем, где написано «Проблемы с цепочкой: неправильный порядок, дополнительные сертификаты» .

Почему я получаю это, и что я должен делать вместо этого?

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 17 октября 2018

Когда кто-то подключается к вашему сайту, вот что он отправляет, как видно по openssl s_client:

Certificate chain
 0 s:/CN=api.quotecrunchers.com
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/CN=api.quotecrunchers.com
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 2 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3

Как вы можете видеть, первый сертификат дублируется, что является причиной рейтингаи сообщение об ошибке.

Когда вы настраиваете сервер TLS, вы обычно указываете на одном конце конечный (серверный) сертификат, то есть один сертификат, и он будет отображаться в позиции 0 в виде следа, как указано выше, изатем вы (необязательно, но очень часто) предоставляете потенциальный список связанных сертификатов, называемый «промежуточным», который связывает ваш конечный сертификат с каким-либо корневым (CA) сертификатом, сам сертификат CA может быть последним в цепочке или может быть пропущен вообще.

Это было бы в позиции 1 и позже в приведенной выше трассировке.

Но, как вы можете видеть, в позиции 1, следовательно, в качестве промежуточного сертификата, мы снова находим вашконец сертификата.

Это неверно для стандарта TLS, поэтому вам нужно изменить конфигурацию или файл, содержащий tОн промежуточные сертификаты, чтобы удалить ваш конечный сертификат с этого места, так что вам, наконец, удастся получить:

Certificate chain
 0 s:/CN=api.quotecrunchers.com
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
...