Не удается включить SSL для контейнера nginx докера

Я новичок в докере и пытаюсь создать образ на основе Alpine, чтобы заботиться о моих сайтах с HTTPS-соединениями. В настоящее время я нахожусь на шаге, чтобы заставить его работать из контейнера, поэтому я еще не закончил с моим Dockerfile моим Dockerfile:

FROM alpine


RUN apk update \
        && apk upgrade \
        && apk add nginx php7 php7-fpm php7-opcache php7-gd php7-mysqli php7-zlib php7-curl \
        && mkdir /run/nginx
EXPOSE 80

Оттуда я запускаю свой контейнер:

docker run -ti -p 80:80 -p 443:442 -v /home/docker/web/conf:/etc/nginx/conf.d/ -v /home/docker/web/www:/var/www/localhost/htdocs test

Затем я устанавливаю certbot-nginx и запускаю его для генерации моего сертификата, который я копирую в мой /var/www/localhost/htdocs/example.fr/ для доступа к нему извне контейнера. Наконец я запускаю php-fpm7 и nginx.

Мой конфиг nginx:

server {
        server_name example.fr;
        root /var/www/localhost/htdocs/example.fr;
        index index.html index.htm index.php;
        listen [::]:443 ssl;
        server_tokens off;
        # configure php
        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
                index index.html index.htm index.php;
        }

        location ~* \.pem {
                deny all;
        }

        ssl_certificate /var/www/localhost/htdocs/example.fr/fullchain.pem; 
        ssl_certificate_key /var/www/localhost/htdocs/example.fr/privkey.pem; # managed by Certbot

}

server {
    if ($host = example.fr) {
        return 301 https://$host$request_uri;
    }
       # managed by Certbot
       server_name example.fr;
       listen 80;
       listen [::]:80;
       #return 404;
}

Я, наверное, упускаю что-то простое, но я застрял с неделю. Спасибо!

1 ответ

Решение

Вместо того, чтобы заново изобретать колесо, возможно, взгляните на некоторые типовые проекты, такие как:

https://github.com/wmnnd/nginx-certbot

Это покрывает ваши потребности:

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