CentOS7 Nginxの導入と、Let’s EncryptでSSL

Twitterでシェア FaceBookでシェア はてなブックマークでシェア

Linux - CentOS7
2018年11月22日21:25に更新(約21日前)
2018年10月8日21:28に作成(約66日前)

旧ブログ移行記事です。

概要

CentOS7でDjangoを動かすシリーズシリーズの一つです。Djangoを動かすのに関係なく使えるとは思います。

今回、narito.ninja というドメインを取得している前提で紹介していきます。ドメインを取得していない場合は、SSL対応ができませんが、それ以外は動作します。

Nginxのインストールと設定

まずはNginxをインストールします。

sudo yum install -y nginx

Nginxの起動と、自動起動の設定。

sudo systemctl start nginx
sudo systemctl enable nginx

http(80番ポート)をちゃんと開けておきます。

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

Webブラウザで、http://narito.ninja/ にアクセスするとこんな画面です。初期ページですね。ドメインがない方は、narito.ninjaの代わりにIPアドレスを入れてください。 Nginxの初期画面

SSL

ドメインがあれば、下記のSSL化もやっておいて損はないでしょう。まずはyumでインストール。

sudo yum install epel-release
sudo yum install certbot

以下のコマンドで、簡単にドメインをSSL化できます。メールアドレスとか聞かれると思うので、正直に答えます。

sudo certbot certonly --webroot -w /usr/share/nginx/html -d narito.ninja

無事におわれば、Nginxの設定ファイルを編集します。

sudo vim /etc/nginx/conf.d/narito.ninja.conf

前半はhttpのアクセスをhttpsへリダイレクトする設定です。httpでページを公開する気がない場合でも、リダイレクト設定をしておくと良いかもしれません。後半がSSLの設定部分です。

server {
        listen 80;
        listen [::]:80;
        server_name narito.ninja;
        return 301 https://$host$request_uri;
}

server {
        listen  443 ssl;
        server_name     narito.ninja;
        ssl on;
        ssl_certificate         /etc/letsencrypt/live/narito.ninja/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/narito.ninja/privkey.pem;
}

httpsポート(443)を開けておくようにしましょう。

sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload

再起動したら、https://narito.ninja (自分のドメインを入れてね)でアクセスしてみましょう。

sudo systemctl reload nginx

3か月で証明書が切れるので、cronでの自動更新を行います。

sudo crontab -e

日曜日ちょっきしに更新です。更新前に一度Nginxを停止し、更新後にNginxを起動です。preは前、postは後、よく使う単語ですね。

00 0 * * 0 certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"

リンク

非公式の解説サイトが丁寧です。
Let's Encrypt 総合ポータル

Twitterでシェア FaceBookでシェア はてなブックマークでシェア

記事にコメントする