Как включить ssl в NGINX, используя сертификат Goddady?

Я новичок в этом, еще не устанавливал SSL-сертификаты в nginx, так что извините за мое незнание.

У меня есть сертификат от Godaddy, но я не могу найти способ использовать его на моем сервере Linux (Ubuntu 18.04).

Я пробежусь через то, что я сделал до сих пор.

Сертификат Godaddy

В процессе создания сертификата SSL сначала Godaddy предоставляет два файла, один с вашим ключом сертификата SSL, а другой с CSR (не уверен, что это такое).

Вам будет предложено загрузить сертификат SSL, который представляет собой еще два файла, один из которых представляет собой пакет, а другой - что-то еще (с их веб-сайта). Скопируйте файл сертификата SSL и файл пакета сертификатов на сервер Nginx. оба эти файла .crt

маршрутизатор

Я включил любой входящий 443 для перенаправления трафика на мой сервер.

Сервер Ubuntu 18.04

Я следовал за их не очень полезными уроками.

https://uk.godaddy.com/help/nginx-install-a-certificate-6722

https://www.godaddy.com/garage/how-to-install-an-ssl-certificate-on-ubuntu-for-nginx/

Отредактировал конфигурационный файл nginx

/ И т.д. / Nginx / сайты Недоступные / MyWeb

server {
    listen 443;
    listen [::]:443;
    ssl on;
    ssl_certificate_key /etc/nginx/ssl/myweb.key;
    ssl_certificate /etc/nginx/ssl/certf.crt;
    ssl_certificate /etc/nginx/ssl/b_certf.crt;

    root /media/world/myweb/origin;

    index index.html index.htm index.nginx-debian.html;

    server_name 192.168.0.9 lmyweb.com www.myweb.com;

    location / {
            try_files $uri $uri/ =404;
    }
}

Получая доступ к моему сайту, я получаю 404 этот сайт не может быть достигнуто.

Я что-то пропустил? может быть, некоторые включения в Nginx, о которых я не знаю? или возможно я настраиваю вышеупомянутое в неправильном файле?

Любая помощь будет оценена.

1 ответ

Решение

Таким образом, вы попадаете в ряд ловушек, а также в проблемы с сертификатами SSL.

Итак, давайте пройдемся по кусочкам.


SSL-сертификаты для NGINX

В отличие от Apache, вы можете предоставить только один ssl_certificate линия в блоке сервера; дополнительные вызовут проблемы или вещь, чтобы игнорировать сертификаты.

Сертификаты NGINX должны содержать следующее в этом порядке:

  • Твой сайт / serer_nameспецифический сертификат
  • Цепочка сертификатов CA. Это обеспечивается GoDaddy вместе с вашими сертификатами в их ZIP-файлах.

Обычно вы можете сделать это чем-то вроде cat sitecert.crt ca-cert.crt > sitecert.fullchain.pemзатем используйте sitecert.fullchain.pem файл в ваших конфигах NGINX.


Конфигурация SSL

Конфигурация NGINX для SSL должна быть следующей (обратите внимание, что другие биты конфигурации удаляются или заменяются # ... чтобы указать, что вам нужно настроить биты на этом этапе для всех остальных настроек:

server {
    listen 443 ssl;

    server_name example.com;

    ssl_certificate /path/to/sitecert.fullchain.pem;
    ssl_certificate_key /path/to/sitecert-private.key;

    # ... Site specific configs here
}

Это исправляет несколько вещей:

  1. Это использует правильное listen 443 ssl; линия. Вы не должны использовать ssl on; так как это считается старым и устаревшим.

  2. При этом используется полная цепочка сертификатов и ключ, и они располагаются в том же порядке.

Другие вопросы по тегам