Как заставить Chrome / браузер принять мой сертификат SSL (подписанный промежуточным сертификатом для моего собственного CA) - PullRequest
0 голосов
/ 21 апреля 2020

Я работаю в DEV, но пытаюсь улучшить свои навыки сек / операции, чтобы стать более универсальным.

Я настроил свой собственный локальный центр сертификации, следуя этому руководству ( хотя и довольно свободно).

Я успешно создал пару root (ключ и сертификат), промежуточную пару и пару серверов для test.mydomain.com.

Затем я настроил nginx в качестве прокси службы для Node.js веб-API (обслуживается Express FWIW). И nginx, и служба nodejs заключены в контейнеры, и я просто использую docker -compose для запуска этого локально. Я также добавил запись hosts, чтобы получить доступ к своему сервису с помощью test.mydomain.com. В конце концов я хочу реализовать шаблон сервис-прокси / sidecar в Kubernetes (где nginx и (микро) сервис работают в одном модуле), но сейчас я просто пытаюсь заставить его работать в docker.

Все это работало по HTTP, поэтому следующий шаг - заставить его работать для HTTPS (где TLS завершается на служебном прокси nginx, а затем запрос передается на службу Node.js через HTTP ). Он работает, но я не могу заставить свой браузер (Chrome в Windows) принять мой сертификат.

enter image description here

I ' Мы пробовали несколько комбинаций импорта сертификатов в Windows хранилища сертификатов, включая:

  • импорт сертификата root в доверенное хранилище сертификатов root CAs
  • импорт промежуточного сертификата в хранилище сертификатов промежуточных ЦС
  • , связывающее root и промежуточные сертификаты и импортирующее в хранилище сертификатов root ЦС

, но я не могу Chrome принять мой сертификат.

FYI nginx настроен следующим образом:

ssl_certificate /etc/ssl/test.mydomain.com.cert.pem;
ssl_certificate_key /etc/ssl/private/test.mydomain.com.key.pem;

Должен ли я подключаться к серверу, промежуточному соединению и & root сертификатам для параметра ssl_certificate в nginx ? .. и какой сертификат (или цепочечный сертификат) я должен импортировать в какое хранилище сертификатов?

Я также заметил, что есть параметр ssl_trusted_certificate nginx, который я не уверен, должен ли я использовать ...

Ура, Райан.

1 Ответ

0 голосов
/ 22 апреля 2020

Хорошо, так что я наконец все заработал. Было несколько вещей ...

Сначала мне удалось заставить работать вещи в Firefox, но Chrome все еще не получался. Это был ключ, который мне был нужен - оказывается, Chrome требует, чтобы сертификаты включали одно или несколько альтернативных имен субъектов, а не просто общее имя (которое, очевидно, приемлемо для Firefox).

Мне пришлось настроить альтернативные имена субъектов при создании и подписании запроса сертификата.

Остальное было довольно легко.

В nginx, ssl_certificate указывает на связанный сертификат (сертификат сервера + промежуточный сертификат).

, а затем мне пришлось импортировать сертификат root в доверенный root CA для локального компьютера.

Перезагрузите chrome и вуаля:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...