環境
CentOS: 6.7 (Sakura VPS)
Nginx: 1.8.1
Python: 2.6.6 → 2.7.11 ※2.7系の最新バージョン:2016/02/11現在
※Python 2.6.6のままだと正常にインストールできないので、Updateする
Pyenvのインストール
git clone git@github.com:yyuu/pyenv.git ~/.pyenv
Pyenvの設定
if [ -e "$HOME/.pyenv" ]; then
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
fi
Python 2.7.11 インストール
pyenv install 2.7.11
デフォルトのPythonを2.7.11に設定
pyenv global 2.7.11
サービスの停止
NginxやApacheを起動している場合、いったん停止させる。
sudo service nginx stop
iptablesの設定
80番ポート、443番ポートが解放されていることを確認する。
解放されていない場合は、解放し、サービスを再起動する。
(省略)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
(省略)
sudo service iptables restart
Let's Encryptのインストール
git clone https://github.com/letsencrypt/letsencrypt
Let's Encryptの実行環境確認
以下のコマンドを実行することで、必要なものがない場合、自動で色々インストールしてくれる。
cd letsencrypt/
./letsencrypt-auto --help
Let's Encryptを実行し、証明書を発行
管理者のメールアドレスを「--email」の後にセットし、発行したい証明書のドメインを「-d」の後に指定する(複数選択可能)。そして、コマンドを実行すると証明書が発行される。
./letsencrypt-auto certonly --standalone --email your_email_address@gmail.com -d localhost.com -d www.localhost.com
途中、Let's Encryptの利用規約画面が表示され、同意が求められます。利用規約に同意できる場合、Agree(同意)を選択してください(もちろん同意しないと使用できません)。
発行された証明書のシンボリックリンクは、以下のディレクトリ内に存在する。
「/etc/letsencrypt/live/www.localhost.com/」
「/etc/letsencrypt/live/localhost.com/」
NginxのSSL設定
Nginxの場合は、以下のように設定することで、https接続ができるようになる。
# 〜省略〜
server {
listen 443;
server_name www.localhost.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.localhost.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.localhost.com/privkey.pem;
root /var/www/html;
# 〜省略〜
}
httpをhttpsにリダイレクトさせる設定
# 〜省略〜
+server {
+ listen 80;
+ server_name www.localhost.com;
+ return 301 https://$host$request_uri;
+}
server {
listen 443;
server_name www.localhost.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.localhost.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.localhost.com/privkey.pem;
root /var/www/html;
# 〜省略〜
}