Назад | Перейти на главную страницу

Как я могу загрузить certbot в домен https с жестким перенаправлением?

У меня есть рабочая конфигурация Nginx, которая:

  1. Выполняет жесткое перенаправление (301) с http на https

  2. Кроме того, игнорируются подпути в http (http://www.example.com/ANY/THING перенаправляет на простой https://example.com)

  3. Обслуживает приложение с https

Как я могу изменить файл конфигурации, чтобы я мог:

В этом примере вместо приложения используется статический корень. Заменить location / заблокировать в разделе HTTPS соответствующим образом ...

1) Создайте файл conf (обратите внимание, что ssl_certificate строки закомментированы)

server {
    # naive redirect of HTTP to HTTPS
    server_name example.com;

    listen *:80;
    listen [::]:80;

    location ^~ /.well-known/acme-challenge/ {
        default_type "text/plain";
        root /var/www/letsencrypt;
    }

    location / {
        return 301 https://example.com;
    }
}

server {
    # main server block
    server_name example.com;

    # SSL configuration
    listen 443 ssl;
    listen [::]:443 ssl;
    # ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    root /var/www/html;
    index index.html index.htm;

    location / {
        # replace this with directives for your application
        try_files $uri $uri.html $uri/ =404;
    }

}

2) Запускаем certbot

certbot certonly --authenticator webroot --webroot-path /var/www/letsencrypt -d example.com

3) Обновите файл conf. Раскомментируйте строки ssl_certificate:

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

4) Перезагрузите nginx

service nginx restart

5) Тестовое обновление (с принудительным возобновлением, а не с сухим прогоном)

certbot renew --force-renewal

6) Через 90 дней продлите как обычно ...

certbot renew