Let'sEncriptでhttps化してみました。
今更ながらなんですが、自分の独自ドメインのサイトをhttps化しておこうと思って
LetsEncryptの設定をぶち込んでみました。後は現時点で最適と思われる
セキュリティを設定しています。
最近はApacheよりNginXいじくるほうが多くなってきています。
特に意味はないですけど。で今回は外部のサーバなのでホスト設定済前提で
NginXのインストールからの作業になります。
◆大まかな手順
1.事前確認
・CPU数の確認
2.nginxインストール
(1)nginxサイトが配布するPGPキーを追加
(2)リポジトリを一覧に追加
(3)NginXインストール
・aptアップデート
・NginXインストール
・NginXバージョン確認
3.nginx設定
・設定ファイル編集(worker_process最適化とバナーを隠す)
・サイトのディレクトリ作成
・Git設定
3.Let'sEncryptionインストール
(1)Let'sEncryptionクライアントの入手
・Gitからのコピー
・初期設定
・TUIの設定
・証明書自動更新設定
(2)NginX設定
・PFS用PEMファイル作成
・設定ファイル編集
・nginx再起動
◆参考サイト
https://www.deep-deep.jp/blog_engineer/archives/3245
http://qiita.com/ksworks/items/cbc7b73c62c5e115d830
http://qiita.com/kieaiaarh/items/3455040597ee34c8c49e
http://gotagotagoat.hatenablog.com/entry/2014/02/19/Nginx%E3%81%A7%E8%87%AA%E5%AE%85%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E6%A7%8B%E7%AF%89
http://server-setting.info/ubuntu/nginx-wordpress-ubuntu14.html
http://www.atmarkit.co.jp/ait/articles/1407/24/news003.html
http://www.sakc.jp/blog/archives/39442
https://ryuzi.wordpress.com/2011/10/03/nginx-%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E9%9D%9E%E8%A1%A8%E7%A4%BA%E3%81%AB%E3%81%99%E3%82%8B/
http://qiita.com/kidach1/items/985efebba639713c562e
http://qiita.com/kidach1/items/985efebba639713c562e
http://qiita.com/hito3/items/0e539e82ee3c410cccf1
http://christina04.hatenablog.com/entry/2015/07/21/094631
http://qiita.com/hiroq/items/420424bc500d89fd1cc8
http://blog.kondoyoshiyuki.com/2012/12/09/setting-1-nginx-on-ubuntu-12-04/
http://yume-build.com/blog/archives/257
http://news.mynavi.jp/news/2010/03/09/013/
http://qiita.com/kieaiaarh/items/3455040597ee34c8c49e
http://qiita.com/utano320/items/36b6eac2bbd5bb5657f6
https://letsencrypt.jp/
http://qiita.com/sak_2/items/ff835b669c0a7e110b09
http://qiita.com/ww24/items/9fa19594b4e3a8eb9b6f
http://inside.pixiv.net/entry/2015/12/10/153114
http://yamano3201.hatenablog.jp/entry/2016/04/23/113528
http://postd.cc/https-on-nginx-from-zero-to-a-plus-part-1/
https://blog.kksg.net/posts/nginx-secure-ssl
http://qiita.com/harukasan/items/fe37f3bab8a5ca3f4f92
http://cameong.hatenablog.com/entry/2016/04/20/174412
LetsEncryptの設定をぶち込んでみました。後は現時点で最適と思われる
セキュリティを設定しています。
最近はApacheよりNginXいじくるほうが多くなってきています。
特に意味はないですけど。で今回は外部のサーバなのでホスト設定済前提で
NginXのインストールからの作業になります。
◆大まかな手順
1.事前確認
・CPU数の確認
2.nginxインストール
(1)nginxサイトが配布するPGPキーを追加
(2)リポジトリを一覧に追加
(3)NginXインストール
・aptアップデート
・NginXインストール
・NginXバージョン確認
3.nginx設定
・設定ファイル編集(worker_process最適化とバナーを隠す)
・サイトのディレクトリ作成
・Git設定
3.Let'sEncryptionインストール
(1)Let'sEncryptionクライアントの入手
・Gitからのコピー
・初期設定
・TUIの設定
・証明書自動更新設定
(2)NginX設定
・PFS用PEMファイル作成
・設定ファイル編集
・nginx再起動
◆参考サイト
https://www.deep-deep.jp/blog_engineer/archives/3245
http://qiita.com/ksworks/items/cbc7b73c62c5e115d830
http://qiita.com/kieaiaarh/items/3455040597ee34c8c49e
http://gotagotagoat.hatenablog.com/entry/2014/02/19/Nginx%E3%81%A7%E8%87%AA%E5%AE%85%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E6%A7%8B%E7%AF%89
http://server-setting.info/ubuntu/nginx-wordpress-ubuntu14.html
http://www.atmarkit.co.jp/ait/articles/1407/24/news003.html
http://www.sakc.jp/blog/archives/39442
https://ryuzi.wordpress.com/2011/10/03/nginx-%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E9%9D%9E%E8%A1%A8%E7%A4%BA%E3%81%AB%E3%81%99%E3%82%8B/
http://qiita.com/kidach1/items/985efebba639713c562e
http://qiita.com/kidach1/items/985efebba639713c562e
http://qiita.com/hito3/items/0e539e82ee3c410cccf1
http://christina04.hatenablog.com/entry/2015/07/21/094631
http://qiita.com/hiroq/items/420424bc500d89fd1cc8
http://blog.kondoyoshiyuki.com/2012/12/09/setting-1-nginx-on-ubuntu-12-04/
http://yume-build.com/blog/archives/257
http://news.mynavi.jp/news/2010/03/09/013/
http://qiita.com/kieaiaarh/items/3455040597ee34c8c49e
http://qiita.com/utano320/items/36b6eac2bbd5bb5657f6
https://letsencrypt.jp/
http://qiita.com/sak_2/items/ff835b669c0a7e110b09
http://qiita.com/ww24/items/9fa19594b4e3a8eb9b6f
http://inside.pixiv.net/entry/2015/12/10/153114
http://yamano3201.hatenablog.jp/entry/2016/04/23/113528
http://postd.cc/https-on-nginx-from-zero-to-a-plus-part-1/
https://blog.kksg.net/posts/nginx-secure-ssl
http://qiita.com/harukasan/items/fe37f3bab8a5ca3f4f92
http://cameong.hatenablog.com/entry/2016/04/20/174412
◆細かい作業
1.事前確認
・CPU数の確認
パラメータ設定で使用する。
$ sudo grep processor /proc/cpuinfo | wc -l 2
2.nginxインストール
(1)nginxサイトが配布するPGPキーを追加
$ sudo curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add
(2)リポジトリを一覧に追加
$ sudo sh -c "echo 'deb http://nginx.org/packages/ubuntu/ trusty nginx' >> /etc/apt/sources.list" $ sudo sh -c "echo 'deb-src http://nginx.org/packages/ubuntu/ trusty nginx' >> /etc/apt/sources.list"
(3)NginXインストール
・パッケージリスト更新
$ sudo apt-get update Ign http://jp.archive.ubuntu.com trusty InRelease Get:1 http://jp.archive.ubuntu.com trusty-updates InRelease [65.9 kB] ~中略~ Hit http://security.ubuntu.com trusty-security/universe Translation-en Fetched 4,162 kB in 6s (655 kB/s) Reading package lists... Done
・NginXインストール
$ sudo aptitude install nginx The following NEW packages will be installed: nginx ~中略~ $
・インストール後NginXバージョン確認
$ sudo nginx -v nginx version: nginx/1.10.1
3.nginx設定
・設定ファイル編集(worker_process最適化とバナーを隠す)
$ sudo vi /etc/nginx/nginx.conf
※下記の内容で編集
user www-data;
worker_processes 2; ←2(CPUの数)に修正
pid /run/nginx.pid;
http {
server_tokens off; ←追記
##
・サイトのディレクトリ作成
$ sudo mkdir -p /var/www $ sudo mkdir -p /var/www/sitename
・Git設定
$ cd /var/www $ sudo git init $ git config --global user.name 'userName' $ git config --global user.email 'your@hoge.com' Initialized empty Git repository in /var/www/.git/ $ sudo git remote add -A $ sudo git add index.html $ sudo git commit -m 'first commit' $ git push --set-upstream sitename master
3.Let'sEncryptionインストール
(1)Let'sEncryptionクライアントの入手
・Gitからのコピー
$ cd /usr/local $ sudo git clone https://github.com/letsencrypt/letsencrypt Cloning into 'letsencrypt'... ~中略~ Resolving deltas: 100% (28522/28522), done. Checking connectivity... done.
・初期設定
$ cd letsencrypt/ $ ./letsencrypt-auto --help Bootstrapping dependencies for Debian-based OSes... ~中略~ all, automation, paths, security, testing, or any of the subcommands or plugins (certonly, install, register, nginx, apache, standalone, webroot, etc.)
・TUIの設定
$ ./letsencrypt-auto certonly --webroot-d sitename -d www.sitename --webroot-path /var/www/sitename ~中略~ Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
TUI表示時に下記の手順に注意
※EMailアドレス入力
※Agreeで規約に同意する
・証明書自動更新設定
$ sudo su # crontab -e
※下記のとおりコマンドを追記
00 05 01 * * /etc/init.d/nginx stop && /usr/local/letsencrypt/letsencrypt-auto renew --force-renew && /etc/init.d/nginx start
(2)NginX設定
・PFS用PEMファイル作成
$ sudo mkdir /etc/nginx/ssl $ cd /etc/nginx/ssl $ sudo openssl dhparam 2048 -out dhparam.pem Generating DH parameters, 2048 bit long safe prime, generator 2 ~中略~
・設定ファイル編集
$ sudo vi /etc/nginx/conf.d/default.conf
※下記のとおり編集
server { listen 80; # httpへのアクセスをhttpsへリダイレクトする listen [::]:80; server_name sitename; if ($http_x_forwarded_proto != https) { return 301 https://$host$request_uri; } } server { listen 443 ssl; listen [::]:443 ssl; ssl on; server_name sitename.com; root /var/www/sitename.com; index index.html index.htm; ssl_stapling on; ssl_stapling_verify on; ssl_certificate /etc/letsencrypt/live//sitename.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live//sitename.com/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; ssl_prefer_server_ciphers on; ssl_dhparam /etc/nginx/ssl/dhparam.pem; add_header Strict-Transport-Security "max-age=31536000; includeSubdomains" always; }
・nginx再起動
$ sudo service nginx configtest nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful $ sudo service nginx reload
コメント