nginxとcertbotのインストール
nginxとcertbotをpkgでインストールします。
# pkg install nginx py311-certbot-nginx
access: 202839
https対応のWebサーバーを作成します。
証明書は、無料の認証局(Let's Encrypt)を利用します。
nginxとcertbotをpkgでインストールします。
# pkg install nginx py311-certbot-nginx
certbotを利用して、証明書を作成します。
junkie.workとwww.junkie.workの証明書を作る場合は、以下のようにコマンドを打ちます。
(この作業が終わるまでは、80/tcpを使うプログラムは停止しておいてください)
# certbot certonly --standalone -d junkie.work -d www.junkie.work
初回起動時は、メールアドレスの登録を求められます。
メールアドレスを登録しない場合は、空のままEnterキーを押します。
次に、利用規約に同意するかどうかを聞かれます。
同意する場合は、"Y"を入力してEnterキーを押します。
その後、証明書の作成が始まり、少し待つと証明書が出来上がります。
証明書は、/usr/local/etc/letsencrypt/live/junkie.work/ 配下に作成されます。
nginxの設定ファイルを作成します。
複数のサイトが管理できるように設定ファイルを分割します。
以下のコマンドで、nginxの設定ファイルを置くディレクトリを作成します。
# mkdir -p /usr/local/etc/nginx/conf.d # mkdir -p /usr/local/etc/nginx/sites.d
次に、/usr/local/etc/nginx/nginx.conf を編集して、以下のように設定します。
user www; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /usr/local/etc/nginx/conf.d/*.conf; include /usr/local/etc/nginx/sites.d/*.conf; }
/usr/local/etc/nginx/conf.d/default.confを以下のように作成します。
include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048;
/usr/local/etc/nginx/sites.d/junkie.work.confを以下のように作成します。
ssl_certificateやssl_certificate_keyのパスは、certbotで作成した証明書のものにします。
server { listen 80; server_name junkie.work www.junkie.work; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name junkie.work www.junkie.work; ssl_certificate /usr/local/etc/letsencrypt/live/junkie.work/fullchain.pem; ssl_certificate_key /usr/local/etc/letsencrypt/live/junkie.work/privkey.pem; include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; root /usr/local/www/junkie.work/data; index index.html; location / { try_files $uri $uri/ =404; } }
nginxを有効にして、起動します。
# service nginx enable # service nginx start
rootに指定した/usr/local/www/junkie.work/data/にファイルを作成します。
# echo "Hello, World!" > /usr/local/www/junkie.work/data/index.html
ブラウザで、ホストを指定してアクセスし、Hello, World!が表示されれば成功です。
証明書が自動更新されるように、/etc/periodic.confに以下の設定を追加します。
weekly_certbot_enable="YES"