naritoブログ

このブログはDjangoとBootstrap4で作成されました
ソースコード

さくらVPS(CentOS7) nginxの導入と、Let’s EncryptでSSL

プログラミング関連 nginx マイサーバ初期設定3 Linux CentOS 約186日前
2017年4月16日16:52
Centos7にnginxを導入していきます。

まずはnginxのインストール
yum install -y nginx


nginx起動と、自動起動の設定
systemctl start nginx
systemctl enable nginx


80番を空けていなければ、ちゃんとあけておきましょう。
firewall-cmd --add-service=http --permanent
firewall-cmd --reload


動作確認のため、以下のコマンドをたたきます。
systemctl status nginx


active (running)と出てれば、元気に動いています。


アクセスすると、こんな画面の初期ページです。



ドメインがあれば、下記のSSL化もやっておいて損はないでしょう。
curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
chmod 700 /usr/bin/certbot-auto



ドメイン名やメールアドレスの場所は、書き換えてください
certbot-auto certonly --webroot  -w /usr/share/nginx/html -d torina.club --email toritoritorina@gmail.com


無事におわれば、confファイルを編集します。
vim /etc/nginx/conf.d/ssl.conf


以下のようにします。ドメイン名の部分を書き換えてください。
前半はhttpのアクセスをhttpsへリダイレクトする設定です。
リダイレクト部分はここに書かず、/etc/nginx/nginx.confのserver部分を書き換えても良いです。
server {
        listen 80;
        listen [::]:80;
        server_name torina.club;
        return 301 https://$host$request_uri;
}

server {
        listen  443 ssl;
        server_name     torina.club;
        ssl_certificate         /etc/letsencrypt/live/torina.club/cert.pem;
        ssl_certificate_key     /etc/letsencrypt/live/torina.club/privkey.pem;
        root                    /usr/share/nginx/html;
        access_log  /var/log/nginx/ssl-access.log  main;
}


443番を空けておくのも忘れずに!
firewall-cmd --add-service=https --permanent
firewall-cmd --reload


再起動したら、https://ドメイン名でアクセスしてみましょう。
systemctl reload nginx


curlのほうが手軽のようです。
curl -v http://torina.club


HTTP/1.1 301 Moved Permanently と出てれば、大丈夫です。
* About to connect() to torina.club port 80 (#0)
*   Trying 160.16.126.11...
* Connected to torina.club (160.16.126.11) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: torina.club
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Server: nginx/1.10.2
< Date: Sun, 16 Apr 2017 10:29:52 GMT
< Content-Type: text/html
< Content-Length: 185
< Connection: keep-alive
< Location: https://torina.club/
<
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.10.2</center>
</body>
</html>
* Connection #0 to host torina.club left intact



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


日曜日ちょっきしに更新です。更新後は、nginxの再起動も行っています。
00 0 * * 0 certbot-auto renew --post-hook "systemctl restart nginx" 1 > /dev/null 2 > /dev/null



https://letsencrypt.jp/
https://letsencrypt.org/
http://knowledge.sakura.ad.jp/knowledge/5573/