Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
22
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

環境

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;

    # 〜省略〜

}
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
22
Help us understand the problem. What are the problem?