Создание, подписание и развертывание сертификатов в системе Ubuntu 14 с помощью certtool
Я пытаюсь узнать о создании сертификата, подписи и что нужно, чтобы стать центром сертификации.
Я разрабатываю HTTP-прокси, который будет промежуточным прокси между браузером и реальным веб-сервером, и будет использоваться для записи сообщений HTTPS, отправленных между браузером и реальным веб-сервером.
Мне нужно создать динамические сертификаты для доменов, просматриваемых в браузере на HTTP-прокси, которые я разрабатываю на 64-битной машине Ubuntu 14. Я хочу, чтобы хром работал плавно при просмотре различных сайтов.
Что я сделал до сих пор:
Создан ключ и самозаверяющий сертификат для CA с помощью приведенных ниже команд.
certtool --generate-privkey --outfile ca-key.pem certtool --generate-self-signed --template cert.cfg --load-privkey ca-key.pem --outfile ca-cert.pemЯвно установите сертификат CA в системном хранилище сертификатов.
Преобразовал сертификат pem в crt используя команду ниже
openssl x509 -in ca-cert.pem -inform PEM -out ca-cert.crt(Мне нужно найти соответствующую команду в certtool)
Потом скопировал
ca-cert.crtподать в/usr/share/ca-certificates/extraпуть и выполняется ниже команды, чтобы явно установить сертификат в системе.sudo dpkg-reconfigure ca-certificatesС этим я получаю системное окно, я выбираю
ca-cert.crtи нажмите Ok, чтобы явно установить сертификат в системе. Насколько я понимаю, поскольку ca-cert.crt явно установлен в системе, любые другие сертификаты, подписанные этим ca-cert и ca-key, будут доверяться системе (кроме приложений, использующих свое собственное хранилище сертификатов, такое как firefox).Затем я создал ключ для HTTP-прокси, используя следующую команду:
certtool --generate-privkey --outfile key.pemЗатем я создал csr для HTTP-прокси, используя команду ниже.
certtool --generate-request --load-privkey key.pem --template cert.cfg --outfile request.pem*Затем я подписал CSR с помощью команды ниже.
certtool --generate-certificate --load-request request.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template cert.cfg --outfile cert.pem
Наконец у меня есть cert.key и cert.pem. Теперь эти файлы сертификатов используются для связи между браузером и моим HTTP-прокси.
Я вижу, что Chrome не показывает полученное содержимое. Однако, если я начну Chrome с ignore-certificate-errors режим, то Chrome работает нормально и правильно отображает контент на сайте.
Может кто-нибудь подсказать мне, что я делаю неправильно, из-за чего Chrome не показывает полученное содержимое?
1 ответ
Вы смотрели на файл шаблона cert.cfg? Это же имя файла встречается в двух разных вызовах certtoolгде цели звонков дополняют друг друга.
Убедитесь, что шаблон одинаков в обоих случаях. В частности, вы должны обратить внимание на ca-инструкция в каждом файле, чтобы убедиться, что они совпадают.