サーバ関連: 作成者:kiyo 記録日:2017年1月25日21:06
コマンド等、主に記録用
Let's Encrypt で無料SSL 認証
https://letsencrypt.jp/ に詳しい資料がある。
無料でSSL認証がつかえる。いい時代になったもんだ!!
このサーバにも適用してみた。
//サーバ ubuntu 16.04LTS + nginx + meteor
// Let's Encryptをインストール
$ sudo apt-get update
$ sudo apt-get install letsencrypt
// nginx を stop
$ sudo service nginx stop
// 証明書を発行してもらう -d がドメイン -m メールアドレス
$ sudo letsencrypt certonly --standalone -d www.yosiki.org -m kiyo@yosiki.org --agree-tos -n
上記のドメイン発行後 サブドメインも追加する場合
(複数可 -d xxx.aaa.com -d yyy.abc.comのように 又は -d xxx.abc.com, yyy.abc.comのようにカンマでもよい)
$ sudo letsencrypt certonly --expand -d www.yosiki.org -d hoge.yosiki.org -d fuga.yosiki.org
--expand で追加してくれるようだ
// nginx の設定
$ sudo vi /etc/nginx/sites-enabled/yosiki.conf
server {
listen 80;
server_name localhost;
return 301 https://www.yosiki.org$request_uri;
}
server {
listen 443;
server_name localhost;
ssl_certificate /etc/letsencrypt/live/www.yosiki.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.yosiki.org/privkey.pem;
ssl on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
# meteor port 8200で起動
proxy_pass http://localhost:8200;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header X-Forwarded-For $remote_addr;
}
}
証明書の有効期限が90日なので更新が必要
更新する場合はnginx を止めなければならないので以下ののように --pre-hook --post-hookが用意されている。
更新30日前にならないと更新されないようですが30日前になっていないと何もしないので cronなどで更新しても問題なし。
$ sudo letsencrypt renew --pre-hook "service nginx stop" --post-hook "service nginx start"