Придобиване на Chrome за приемане на самоподписан сертификат на localhost

Създадох самостоятелно подписан SSL сертификат за локалния хост CN. Firefox приема този сертификат, след като първоначално се оплака от него, както се очакваше. Chrome и IE обаче отказват да го приемат, дори и след като добавиха сертификата в системното хранилище за сертификати в раздел "Доверени корени". Въпреки че сертификатът е посочен като правилно инсталиран, когато щракна върху "View certificate information" (Преглед на информацията за сертификата) в изскачащия прозорец на Chrome'HTTPS, той все още настоява, че сертификатът не може да бъде доверен.

Какво трябва да направя, за да накарам Chrome да приеме сертификата и да спре да се оплаква от него?

В Mac можете да използвате помощната програма Keychain Access, за да добавите самоподписания сертификат към системния ключодържател, след което Chrome ще го приеме. Намерих инструкциите стъпка по стъпка тук:

Google Chrome, Mac OS X и самоподписани SSL сертификати

В общи линии:

  1. щракнете двукратно върху иконата за заключване с X и плъзнете и пуснете иконата на сертификата на работния плот,
  2. отворете този файл (завършващ с разширение .cer); така се отваря приложението Keychain, което ви позволява да одобрите сертификата.
Коментари (15)

Linux

Ако използвате Linux, можете да следвате и тези официални страници в уикито:

По принцип:

  • щракнете върху иконата за заключване с X,
  • изберете Информация за сертификата
  • отидете на раздела Подробности
  • Щракнете върху Експорт... (запазване като файл)

Сега следната команда ще добави сертификата (където YOUR_FILE е експортираният файл):

certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n YOUR_FILE -i YOUR_FILE

За да изведете всички сертификати, изпълнете следната команда:

certutil -d sql:$HOME/.pki/nssdb -L

Ако тя все още не работи, може да сте засегнати от тази грешка: Проблем 55050: Грешка 8179 в Ubuntu SSL

P.S. Моля, уверете се също, че имате libnss3-tools, преди да можете да използвате горните команди.

Ако нямате, моля, инсталирайте го:

sudo apt-get install libnss3-tools # on Ubuntu
sudo yum install nss-tools # on Fedora, Red Hat, etc.

Като бонус можете да използвате следните удобни скриптове:

$ cat add_cert.sh
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n $1 -i $1
$ cat list_cert.sh
certutil -d sql:$HOME/.pki/nssdb -L # add '-h all' to see all built-in certs
$ cat download_cert.sh
echo QUIT | openssl s_client -connect $1:443 | sed -ne '/BEGIN CERT/,/END CERT/p'

Употреба:

add_cert.sh [FILE]
list_cert.sh
download_cert.sh [DOMAIN]

Отстраняване на неизправности

  • Стартирайте Chrome с параметър --auto-ssl-client-auth

    google-chrome --auto-ssl-client-auth

Коментари (2)

Сигурни ли сте, че адресът, на който се показва сайтът, е същият като този на сертификата? Имах същите проблеми с Chrome и самостоятелно подписан сертификат, но в крайна сметка установих, че той е просто изключително придирчив към валидирането на името на домейна в сертификата (както би трябвало да бъде).

Chrome не разполага със собствено хранилище за удостоверения и използва собственото на Window. Въпреки това Chrome не предоставя начин за импортиране на удостоверения в магазина, така че вместо това трябва да ги добавите чрез IE.

Инсталиране на сертификати в Google Chrome

Инсталиране на сертификати в Internet Explorer

Също така погледнете това за няколко различни подхода за създаване на самоподписани сертификати (предполагам, че използвате IIS, тъй като не сте споменали).

How to Create a Self Signed Certificate in IIS 7

Коментари (4)