- mysql
- user root
- pass
- db name test
- default domain test.loc
Частично взято отсюда: https://habr.com/ru/post/192446/
Многие инструкции по созданию сертификатов не работают, потому что с определенного момента Chrome стал требовать указания subjectAltName для сертификата домена. В инструкциях об этом обычно не написано
Последовательность следующая.
- Создаем корневой сертификат.
- С помощью корневого сертификата создаем сертификат для домена.
- Добавляем корневой сертификат в список доверенных сертификатов в ос
- Теперь все сертификаты созданные с помощью этого корневого сертификата будут считаться валидными
файл root.crt.sh
openssl можно использовать в vagrant ssh
Можно выпустить один раз и пропускать этот шаг для новых доменов
Лучше сгенерированные в этом разделе файлы скопировать куда-то, чтобы потом использовать для выпуска новых сертификатов
Генерируем приватный ключ для корневого сертификата
openssl genrsa -out myRootCA.key 4096
Генерируем корневой сертификат с приватным ключом
В файле root.cfg конфиг для openssl req
openssl req -x509 -new -key myRootCA.key -days 10000 -config root.cfg -out myRootCA.crt
# Country Name (2 символьный код) [AU]:RU
# State or Province Name (область или штат) [Some-State]:Moskow
# Locality Name (Город) []:Moskow
# Organization Name (название организации) [Internet Widgits Pty Ltd]: MY-DEV-CA
# Organizational Unit Name (название подразделения) []: my-dev-ca
# Common Name (общее имя) []: my-dev-ca
# Email Address []: my@email.com
Файл domain.crt.sh
использовать ./domain.crt.sh site.com
Здесь и далее site.com нужно заменить на домен для которого делаем сертификат
Создаем приватный ключ
openssl genrsa -out site.com.key 2048
Создаем файл конфига из дефолтного. В файле domain.cfg.default находится шаблон конфига. Команда ниже заменит все вхождения site.com на ownsite.com(ownsite.com нужно заменить на домен для которого сертификат) в файле domain.cfg.default и сохранит в файл domain.cfg
cat domain.cfg.default | sed 's/site.com/ownsite.com/g' > domain.cfg
Создание запроса на генерацию
openssl req -new -key site.com.key -config domain.cfg -out site.com.csr
# Country Name (2-х буквенный код страны) [AU]:AU
# State or Province Name (область штат) [Some-State]:Moscow
# Locality Name (Город) []:Moscov
# Organization Name (название организации) [Internet Widgits Pty Ltd]:dev
# Organizational Unit Name (название подразделения) []:dev
# Common Name (домен для которого выпускается сертификат или ip) []:site.com
# Email Address [email администратора]:me@email.com
# A challenge password []:23zy!
# An optional company name []:Kloud
Подписываем запрос корневым сертификатом
openssl x509 -req -in site.com.csr -CA myRootCA.crt -CAkey myRootCA.key -CAcreateserial -out site.com.crt -days 5000 -extensions v3_req -extfile domain.cfg
rootCA.crt — можно давать друзьям, устанавливать, копировать не сервера, выкладывать в публичный доступ rootCA.key — следует держать в тайне
Теперь нужно сертификат myRootCA.crt
добавить в "доверенные центры сертификации" в вашем браузере и ОС.
Теперь любой сертификат домена подписанный этим сертификатом будет отображаться как доверенный.
Все должно заработать после того как настроим nginx на отдачу сертификата.
server {
listen 80;
listen 443 ssl;
server_name cvclinic.ru;
access_log /var/log/nginx/host.access.log;
error_log /var/log/nginx/host.error.log debug;
index index.php;
ssl on;
ssl_certificate /vagrant/site.com.crt;
ssl_certificate_key /vagrant/device.key;
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|js)$ {
root /var/www/;
index index.php;
}
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~ /\.ht {
deny all;
}
}