Как получить бесплатный сертификат от китайского WoSign на год я уже рассказывал. Но вот для рабочего портала потребовался Wildcard SSL сертификат. Мы прикупили Ukrnames Wildcard SSL Certificate у партнера Comodo. Через некоторое время получаю в архиве следующие файлы:
*_domain_tld.crt ca_1.crt ca_2.crt ca_3.crt
файлы ca_*.crt — промежуточные сертификаты
Внедрение
Чтобы все работало и браузеры не ругались на якобы не доверенный сертификат, нужно все эти файлы сертификатов объединить в один файл
awk 1 \*_domain_tld.crt ca_3.crt ca_2.crt ca_1.crt > domain.tld.crt
Важно!!! *.crt должны идти именно в таком порядке, не иначе
В nginx’е в секции http пишем
ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
остальное в нужном виртуальном конфиге
resolver 127.0.0.1; ssl_stapling on; ssl_prefer_server_ciphers on; ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!EDH+aRSA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_certificate /etc/ssl/certs/nginx/domain.tld.crt; ssl_certificate_key /etc/ssl/certs/nginx/domain.tld.key; add_header Strict-Transport-Security 'max-age=15552001; includeSubDomains';
(Переходом на TLS1.2 и использование современных средств шифрования на посещаемом портале, мы стимулируем пользователей переходить на новые версии браузеров, в результате для их же пользы)
Важно!!! Об использовании add_header Strict-Transport-Security ‘max-age=15552001’; читаем с статье «Бесплатный ssl сертификат? Пожалуйста!!!«
У меня wildcard сертификат, поэтому я добавил includeSubDomains
Обязательно проверяем конфиг и передергиваем nginx
nginx -t
nginx -s reload
Посмотрим как сертификат «видят» браузеры
openssl s_client -connect sudomain.domain.tld:443
….Certificate chain
0 s:/OU=Domain Control Validated/OU=Provided by Center of Ukrainian Internet Names (UKRNAMES)/OU=Ukrnames Wildcard SSL/CN=*.domain.tld
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
3 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
—Verify return code: 0 (ok)
Cубъект (“s”) сертификата №0 сервера Center of Ukrainian Internet Names подписан издателем (“i”), который в свою очередь является субъектом сертификата №1, подписанного издателем, который в свою очередь является субъектом сертификата №2, подписанного общеизвестным издателем AddTrust External TTP Network, чей сертификат хранится во встроенной в браузеры базе данных сертификатов
Ошибок нет, проверяемся на ssllabs
У меня вышло
Если не подключить промежуточные сертификаты
Если подключить только сертификат своего домена, то некоторые браузеры могут и ругаться
openssl s_client -connect subdomain.domain.tld:443
…Certificate chain
0 s:/OU=Domain Control Validated/OU=Provided by Center of Ukrainian Internet Names (UKRNAMES)/OU=Ukrnames Wildcard SSL/CN=*.domain.tld
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CAVerify return code: 21 (unable to verify the first certificate)
а тест на ssllabs даст ошибку
Chain issues Incomplete
И пользователи получают ругань в браузере, хотя и будет уровень А

- Системный администратор с 2000 года
- Участник Хабр Q&A и cyberforum
- Кейсы