Създадох самостоятелно подписан SSL сертификат за локалния хост CN. Firefox приема този сертификат, след като първоначално се оплака от него, както се очакваше. Chrome и IE обаче отказват да го приемат, дори и след като добавиха сертификата в системното хранилище за сертификати в раздел "Доверени корени". Въпреки че сертификатът е посочен като правилно инсталиран, когато щракна върху "View certificate information" (Преглед на информацията за сертификата) в изскачащия прозорец на Chrome'HTTPS, той все още настоява, че сертификатът не може да бъде доверен.
Какво трябва да направя, за да накарам Chrome да приеме сертификата и да спре да се оплаква от него?
В Mac можете да използвате помощната програма Keychain Access, за да добавите самоподписания сертификат към системния ключодържател, след което Chrome ще го приеме. Намерих инструкциите стъпка по стъпка тук:
Google Chrome, Mac OS X и самоподписани SSL сертификати
В общи линии:
Ако използвате Linux, можете да следвате и тези официални страници в уикито:
По принцип:
Сега следната команда ще добави сертификата (където 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
Сигурни ли сте, че адресът, на който се показва сайтът, е същият като този на сертификата? Имах същите проблеми с Chrome и самостоятелно подписан сертификат, но в крайна сметка установих, че той е просто изключително придирчив към валидирането на името на домейна в сертификата (както би трябвало да бъде).
Chrome не разполага със собствено хранилище за удостоверения и използва собственото на Window. Въпреки това Chrome не предоставя начин за импортиране на удостоверения в магазина, така че вместо това трябва да ги добавите чрез IE.
Инсталиране на сертификати в Google Chrome
Инсталиране на сертификати в Internet Explorer
Също така погледнете това за няколко различни подхода за създаване на самоподписани сертификати (предполагам, че използвате IIS, тъй като не сте споменали).