Я установил небольшую PKI, используя openssl ca
, следуя руководству, которое объясняет процедуру и некоторые концепции в деталях. Я хочу выполнить в значительной степени ту трехуровневую настройку, которая описана в этой статье, а именно, что фактические сертификаты выдаются Промежуточным ЦС, который, в свою очередь, «управляется» корневым ЦС, причем корневой ЦС самоподписывается и в конечном итоге развернут на заинтересованных клиентов. Я попытался воспроизвести конфигурацию, описанную в статье, как можно ближе, чтобы предотвратить одновременную настройку слишком большого количества вещей, которые я пока не понимаю.
Пока у меня есть следующее:
- Сертификат и «инфраструктура» для корневого центра сертификации.
- Сертификат и «инфраструктура» для промежуточного ЦС.
- CRL для обоих CA.
- Тестовый сертификат, выданный промежуточным центром сертификации, чтобы проверить, все ли это работает.
- Копии Demo CA для сравнения.
Теоретически, развернув сертификат корневого ЦС в браузере, а затем зайдя на сайт, защищенный этим последним сертификатом, я должен получить «значок замка». Это делает работу с Internet Explorer, Chrome и Firefox. Opera работает и выдает сообщение «Безопасное соединение: фатальная ошибка (1578)», поэтому что-то явно сломано.
Статья на форуме предполагает, что проблема кроется в CRL, поэтому я отправился туда исследовать. Internet Explorer не имеет проблем с открытием списков отзыва сертификатов и отображает их правильно, без какого-либо уведомления о том, что что-то не так. Firefox, с другой стороны, отказывается и выдает «Код ошибки ffffe00a», который указывает на проблемы с подписью ( Error -8182: SEC_ERROR_BAD_SIGNATURE: Peer's certificate has an invalid signature.
). Это, однако, происходит только тогда, когда я сначала импортировал сертификат CA. Если я этого не сделаю, то CRL принимается без проблем.
Я проверил все сертификаты и CRL с любыми вызовами обоих openssl
и от Microsoft, certutil.exe
чтобы я мог получить руку, и все это дает мне большие пальцы.
Размещая мои сертификаты рядом с демонстрационными сертификатами в вышеупомянутой статье, я не вижу разницы - кроме имен, конечно. Так что в теории они должны вести себя одинаково. Но попытка импортировать корневой сертификат Demo CA и затем просмотр CRL работает во всех браузерах, тогда как мой собственный Root CA приводит к этим странным ошибкам. (Не имея закрытых ключей Demo CA, я, конечно, не могу проверить, будут ли работать сертификаты, выданные Demo CA.)
Я в тупике. Кажется, мне не хватает чего-то тонкого, но важного, но у меня нет идей и ресурсов. Спасибо за любые предложения или указатели.
curl -vI https://www.aleturo.com/
говорит о том, чтоSSL certificate verify ok.
только Opera действует, но из того, что я прочитал, я понял, что Opera является наиболее строгой в отношении SSL, так что что-то еще не работает. Рассмотрение сертификатов с помощью парсера ASN.1 - это то, о чем я еще не думал, я посмотрю на это.