пятница, 7 июня 2013 г.

Comodo Positive SSL Wildcard Certificate + nginx + Firefox + ISPmanager

Добрый день.

Появилась проблема:
У некоторых пользователей в Firefox (winxp/ubuntu 12.04) говорит, что Comodo Positive SSL, который стоит на моих серверах, не трастовый и дает ошибку:  sec_error_unknown_issuer.

И вот как решается эта проблема:
Когда покупаешь Comodo Positive SSL Wildcard Certificate вам приходит письмо от comodo с прикрепленным zip-архивом в котором содержится 3 файла *.cert.

Для того, что бы решить проблему с сертификатом в Firefox необходимо все эти 3 файла закинуть на сервер. Например закинем их в папку /var/www/httpd-cer/username/, где username - имя пользователя. Все действия актуальны для системы управления сервером ISPmanager.

И вот в каталоге /var/www/httpd-cert/username/ у меня находятся 5 файлов:
AddTrustExternalCARoot.crt - главный сертификат центра сертификации;
PositiveSSLCA2.crt;
STAR_domain_name.crt - сам SSL сертификат;
comodo.crt - действующий сертификат (установленный ранее для данного домена);
comodo.key - приватный ключ к сертификату.

В качестве фронтенда у меня выступает nginx. Весь конфиг находится в одном месте /etc/nginx/nginx.conf.
Ищем секцию server { ... } для интересующего нас домена.
В конце секции будут две записи:
ssl_certificate /var/www/httpd-cert/username/comodo.crt
ssl_certificate_key /var/www/httpd-cert/username/comodo.key

Для начала нам нужно создать так называемый ca-bundle:
# cat PositiveSSLCA2.crt STAR_domain_name.crt AddTrustExternalCARoot.crt > domain_name.ca-bundle

Теперь создадим chain сертификат:
# cat comodo.crt domain_name.ca-bundle > domain_name.chain.crt

Теперь нужно подправить конфиг nginx и заменить путь ssl_certificate на chain сертификат:
# nano /etc/nginx/nginx.conf

приводим строку ssl_certificate к такому виду:
ssl_certificate /var/www/httpd-cert/username/domain_name.chain.crt
Сохраняем и закрываем текстовый редактор.

Перезагрузим конфиги nginx'а:
# /etc/init.d/nginx reload

Радуемся https без предупреждений.

Что бы каждый раз не править конфиги всех поддоменов, можно сделать один файл через любой текстовый редактор или же взять сделанный domain_name.chain.crt и в панели управления сервером ISPmanager'ом в качестве сертификата вставлять полностью весь файл.

Для других веб-серверов есть аналогичные решения, смотрим ссылку на stackoverflow.

Ссылки:
https://support.comodo.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=264&nav=0,1
http://stackoverflow.com/questions/275878/firefox-and-ssl-sec-error-unknown-issuer
http://nginx.org/en/docs/http/configuring_https_servers.html#chains
http://kb.parallels.com/ru/716

Комментариев нет:

Отправить комментарий