Я настроил Nginx для поддержки сертификатов ECC и RSA в гибридном режиме.
После включения воспользуйтесь следующей командой, чтобы получить полную цепочку сертификатов с моего сервера:
openssl s_client -showcerts -connect server:443 -servername server-sni
Затем я получил три сертификата, один лист, два дубликата промежуточного сертификата (должен быть только один промежуточный сертификат).
Я не обнаружил никаких проблем с моей конфигурацией nginx.
#rsa
ssl_certificate /path/server_rsa-cert.pem;
ssl_certificate_key /path/server_rsa-key.pem;
# ecc
ssl_certificate /path/server_ecc-cert.pem;
ssl_certificate_key /path/server_ecc-key.pem;
Затем я попробовал удалить сертификат ECC или сертификат RSA, запустил команду openssl, после этого дубликатов промежуточных сертификатов не было.
Похоже, что дублирование промежуточного сертификата происходит только тогда, когда Nginx находится в гибридном режиме сертификата.
Есть идеи по этому поводу?
решение1
Хорошо, покопавшись, я выяснил, что все эти проблемы вызваны старой версией libressl, которую я использовал. Обновите версию libressl до 2.9.2, затем скомпилируйте Nginx, чтобы исправить эту проблему.