LoginSignup
12
9

More than 5 years have passed since last update.

無料でSSL証明書を取得する方法について

Last updated at Posted at 2016-02-29

無料でSSL証明書を取得する

SSL証明書を取得して運用する為には今まで、ベリサインやGEOなどの認証局へ有料で審査してもらって証明書を発行してもらっていた。
しかし、2015/12に無料で使用できるLet's Encryptというサービスが公式に始まった。
これを使用して無料でSSL証明書を取得してみる。

Let's Encrypt
https://letsencrypt.org/

準備

gitが必要となるのでインストールします。
# yum install git

インストール

# cd /usr/local/src/
# git clone https://github.com/letsencrypt/letsencrypt
# cd /usr/local/src/letsencrypt/
# ./letsencrypt-auto --help --debug

上記で必要な物がインストールされます。
yum でインストールされる python 2.6 ではエラーが発生するので –debug オプションをつけて実行します。
helpが表示されれば成功です。

証明書の発行

サーバの80ポートを使用して証明書を発行する方法(--standalone)

この方法は80番ポートを使用していない状態にしないといけないため、既に起きているwebサーバなどを停止する必要がある。
# ./letsencrypt-auto certonly --standalone --debug -d ドメイン名

ドキュメントルートに認証用ファイルを作成して証明書を発行する方法(--webroot)

この方法はドキュメントルートに認証用のファイルを作成して証明書を発行するので
既に起動しているWEBサーバを停止する必要がない。
# ./letsencrypt-auto certonly --webroot --debug -w ドキュメントルート -d ドメイン名

ここでは上記のサーバを停止する事なく発行できる方法を取り上げる。
だが、手順的にはどちらも同じはず。

コマンド実行後下記手順

メールアドレス入力
image

規約に同意するか
image

上記が終了すると
/etc/letsencrypt/live/ドメイン名/
に鍵が作成されています。

WEBサーバの設定

先ほど作成されたキーをWEBサーバに読み込ませます。
下記apache例

下記を追加、または変更します。

ssl.conf
SSLCertificateFile /etc/letsencrypt/live/ドメイン名/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ドメイン名/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/ドメイン名/chain.pem

# /etc/init.d/httpd restart

httpsでの接続がきちんと認証された状態で接続できるようになっているはずです。

鍵の自動更新について

鍵の有効期間は90日間と大変短いです。自動で更新できるようにしておきましょう。

letsencrypt-auto renew
上記で使用している全ドメインに対して期限が近づいてきたら更新されるらしいのですが、ちょっと曖昧で不安なので
--force-renew
オプションを付け、強制的に更新させるコマンドでcronに登録しておきましょう。

毎月1日の朝9時に自動更新
lang:crontab -e
0 9 1 * * /usr/local/src/letsencrypt/letsencrypt-auto renew --force-renew --debug 2>&1 > /dev/null

以上。

12
9
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
12
9