Самоподписанный ssl сертификат

Самоподписанный ssl сертификат может пригодиться в случае, когда у вас отсутствует доменное имя, но обеспечить защищенное соединение все же необходимо. Конечно же браузер по умолчанию не будет доверять такому сертификату, но его можно добавить в исключения.

В Google Chrome такой сертификат добавить чуть сложнее чем в FireFox, кроме того он требует обязательного наличия поля subjectAltName.

Воспользуемся конфигурационным файлом для удобства, выглядеть он будет так (cert.cfg):

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = RU
ST = Moscow
L = Moscow
O = CompanyName
OU = ITDepartment
CN = myfakedomain.ru
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = myfakedomain.ru
DNS.2 = www.myfakedomain.ru
IP.1 = 192.168.1.1
IP.2 = 192.168.1.2

И теперь команда с помощью нее непосредственно сгенерируем сертификат:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nginx.key -out nginx.crt -config cert.cfg -sha256

Данный пример включает в себя целых 3 дополнительных алиаса субъекта (subjectAltNames), или если хотите URL, для которых сертификат будет действителен. Вы можете отредактировать только под один IP адрес, либо имя, которое у вас прописано в hosts. Обратите внимание на строку CN = myfakedomain.ru она строго обязательна, в отличие остальных в секции req_destingushed_name. CN может содержать IP, при отсутствии доменного имени.

Для nginx конфиг будет выглядеть, с учетом указанных в команде имен ключа и сертификата:
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;

Точные пути, естественно, поменяете на свои.

О том как добавить самоподписанный сертификат в Google Chrome, можете прочитать в статье CHROME: HOW TO INSTALL SELF-SIGNED SSL CERTIFICATES После проделанных в статье манипуляций, чтобы вступили в силу, обязательно полностью закройте браузер, и запустите снова.

Добавить комментарий