Настройка ssl (https) в nginx на localhost

Далее шаг за шагом рассмотрим настройку ssl соединения в nginx в CentOS.

Генерация самоподписного сертификата.

openssl req -x509 -out localhost.crt -keyout localhost.key -newkey rsa:2048 -nodes -sha256 -subj '/CN=localhost' -extensions EXT -config <( printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")

####################################################################
## Так же можно сгенерировать *.csr ключ на основе *.crt и *.key ###
####################################################################

 openssl x509 -in domain.crt -signkey domain.key -x509toreq -out domain.csr

В конфигурационном файле nginx (/etc/nginx/conf.d/<site_config>.conf) редактируем параметр server {...} :

server {
    # порт, который будет слушать веб-сервер
    listen      443 ssl; ### Либо указать любой-другой порт, напр 4443 ssl; ###
    
    ssl_certificate /path/to/certificate/localhost.crt;
    ssl_certificate_key /path/to/certificate/localhost.key;
    # доменное имя
    server_name     127.0.0.1;
    charset     utf-8;

Для работы одновременно по нескольким портам, необходимо добавить параметр server {...} с соответствующими настройками.