LoginSignup
16
21

More than 5 years have passed since last update.

Let’s Encryptを利用して無料で証明書を発行する

Last updated at Posted at 2016-02-14

環境

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の設定

~/.bash_profile
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番ポートが解放されていることを確認する。
解放されていない場合は、解放し、サービスを再起動する。

/etc/sysconfig/iptables
(省略)
-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接続ができるようになる。

/etc/nginx/nginx.conf

# 〜省略〜

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にリダイレクトさせる設定

/etc/nginx/nginx.conf

# 〜省略〜

+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;

    # 〜省略〜

}
16
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
21