プログラミング初心者の勉強ブログ #138
前にやったLet’ EncryptのSSL証明書が切れ、再度新規で申請したが前にやったことを忘れてしまってログを遡ってなんとか思い出した。時間取られすぎたのでここにまとめておく。
目次
[toc]
概要
- certbot.confの編集 – パスを通すためのプロキシを設定する
- nginxのリロード – 大切
- certbotで申請
- リバースプロキシの編集 – 取得した証明書を指定してSSL実装
前提
- ドメインはすでに取得済みで、DNS関連も設定済みである
- Nginxはプロキシサーバーとして使用している
仕組み
イメージでざっくり。
- certbotがSSL証明書を取得したいドメインに対し、独自に指定したパスへ自動でHTTPリクエストを送る
- certbotはレスポンスに指定した文字列が返却されてきているかをみている
- こっちは指定したディレクトリで文字列を反映させて待っている必要がある
- だたし、パスさえ指定すればそのディレクトリに対して自動で文字列を用意したファイルを用意してくれる(あくまでイメージ)みたいなので、こちらはNginxのプロキシ設定でパスを通す必要がある
手順
certbot.confの編集
1, ファイルの場所
vim /etc/nginx/conf.d/certbot.conf
で設定ファイルを編集
2, 内容
certbot.confは普段は中身をコメントアウトしている
certbot.conf
server {
listen 80;
server_name example.com; #ドメイン指定
# いじらないで大丈夫
location ^~ /.well-known/acme-challenge/ {
root /var/www/html;
}
}
server_name
で、証明書を発行するドメインを指定する
その他はいじらなくて大丈夫。
nginxのリロード
nginx -t
で確認し、
nginx -s reload
でリロード
certbotで申請
1, カレントディレクトリの移動
cd /usr/local/certbot
に移動
2, コマンド
./certbot-auto certonly --webroot --agree-tos -w /var/www/html -m example@gmail.com -d example.com
最後の部分のドメインを変更するだけ。
リバースプロキシの編集
1, confファイルの編集
sslのfullchain.pem
とprivkey.pem
を設定する
作成されたファイルを確認するコマンド↓
ls -lrth /etc/letsencrypt/live/example.com/
ファイル作成→編集
vim /etc/nginx/conf.d/example.com.conf
example.conf
server {
listen 80;
server_name example.com;
return 301 https://example.com;
}
server {
listen 443 ssl;
server_name example.com;
root /var/www/xxxxxx;
index index.php;
client_max_body_size 20M;
charset utf-8;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
access_log /var/log/nginx/xxxxxx_access.log;
error_log /var/log/nginx/xxxxxx_error.log;
location ~* /wp-config.php {
deny all;
}
location ~ \.php$ {
root /var/www/xxxxxx;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}