Как получить бесплатный сертификат от китайского WoSign на год я уже рассказывал. Но вот для рабочего портала потребовался Wildcard SSL сертификат. Мы прикупили Ukrnames Wildcard SSL Certificate у партнера Comodo. Через некоторое время получаю в архиве следующие файлы:
domain_tld.crt
ca_1.crt
ca_2.crt
файлы ca_*.crt — промежуточные сертификаты
Внедрение
Чтобы все работало и браузеры не ругались на якобы не доверенный сертификат, нужно все эти файлы сертификатов объединить в один файл
awk 1 domain_tld.crt ca_1.crt ca_2.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 года
- Участник Freelancehunt, Хабр Q&A, cyberforum
- Кейсы