Иногда приходится тестировать задачи в которых обмен трафиком происходит по 443 порту (HTTPS).
Пример: есть сайт x.ru который отправляет XHR запрос к сайту yapro.ru по протоколу HTTPS.
Задача: локально перенаправить данный запрос на локально настроенный сайт yapro.ru.
Решение: добавить хост yapro.ru в локальный /etc/hosts и протестировать правильную обработку XHR-запроса.
Поехали - создадим директорию где будем хранить сертификат:
mkdir /etc/nginx/certs cd /etc/nginx/certs
Сгенерируем приватный ключ (ssl_certificate_key):
openssl genrsa -out "devcert.key" 2048
Сгенерируем публичный ключ, используя приватный ключ для шифрования:
* при выполнении следующей команды, вас будут просить вводить данные о своем сервисе. Можно эти данные не вводить, единственное, советую ввести данные при запросе "Common Name", некоторые советуют вводить: *.dev или хост-имя сервиса
openssl req -new -key "devcert.key" -out "devcert.csr"
Теперь подпишем и сгенерируем сертификат:
openssl x509 -req -days 365 -in "devcert.csr" -signkey "devcert.key" -out "devcert.crt"
Скажем nginx-у слушать 80 и 443 порты:
listen 80: listen 443 ssl;
Пропишем наш сертификат и публичный ключ:
ssl_certificate /etc/nginx/certs/devcert.crt; ssl_certificate_key /etc/nginx/certs/devcert.key;
Все, что осталось сделать - перезапустить nginx:
service nginx restart
Осталось проверить наш сертификат:
curl -I -L https://yapro.ru/robots.txt --no-check-certificate
Как видите, благодаря опции "--no-check-certificate" мы сказали curl-у - не обращать внимание на то, что сертификат самоподписный. Удачки.
Источник: 1
Так же, может быть Вам будет интересно почитать про сертификаты от Letsencrypt: 1 - 2 - 3 - 4 - 5 - 6 - 7