【雑記】パブリックベータになった「Let’s Encrypt」でhttpdを稼働させつつ証明書を発行する方法

今回、MDpoolのSSL/TLS有効化にあたって最近パブリックベータになった無償のドメイン認証証明書の発行サービスである「Let’s Encrypt」を使用しました。 しかし、有志が公開する日本語のページではhttpdを稼働させつつ証明書の取得を行う方法が掲載されていない(実は本家には掲載されている)こともあり、今回メモも兼ねてその方法をまとめておきます。

 

Let’s Encrypt
https://letsencrypt.org

「Let’s Encrypt」というサービスは、ドメイン認証の証明書ながらなんと無料で発行できるというサービスで、今月パブリックベータとなったサービスです。

現時点では以下のような制約があります。

  • 発行可能な証明書はDV(ドメイン認証)証明書のみ
  • ワイルドカード証明書の発行は不可(SNI,SANは可能)
  • 発行した証明書の有効期限が90日(将来的にはさらに短くする可能性あり)
  • 現在は1ドメインにつき1週間あたり5枚までの発行制限あり

約3カ月と証明書の期限が短いとはいえ、費用をかけずにSSL/TLSを利用可能になることは大部分の方々にはメリットがあるはずです。

 

今回はそんな「Let’s Encrypt」をwebサーバが稼働しているサーバにて発行処理を行う方法(+導入方法)をまとめておきます。

 

まずは、「Let’s Encrypt」のサービスを使用する上で必要なクライアントを取得します。

ただし、このクライアントはgithubにて公開されているので、パッケージ管理ソフトでgitを取得します。

(debian・Ubuntuの場合)
sudo apt-get update

sudo apt-get install git

 

(CentOS・Fedoraの場合)

yum  check-update

yum install git

インストールが完了したら、今度は適当なディレクトリにgithubからgitを使用し、クライアントを取得します。

git clone https://github.com/letsencrypt/letsencrypt

取得後は該当のディレクトリ内に移動し、「letsencrypt-auto」というファイルを実行します。 その際、実行に必要なファイルの取得が自動で実行されますのでsudo環境ではパスワードを入力してください。

cd letsencrypt

./letsencrypt-auto –help

正しく導入されていれば、ヘルプが表示されます。

次はいよいよ肝心な部分となるwebサーバを稼働させつつの証明書発行処理です。

以下のコマンドを導入したい環境に合わせて書き換えたのち、実行してください。 正しく設定されていれば、証明書の発行に成功した旨のメッセージが表示されます。

./letsencrypt-auto certonly –webroot -w [対象ドメインのルートにあたるディレクトリパス] -d [対象ドメイン]

(例)

./letsencrypt-auto certonly –webroot -w /var/www/site-a -d site-a.mona-digest.net

後は「/etc/letsencrypt/live/[発行したドメイン名]/」のディレクトリ内に以下のファイルが生成されているので、適宜必要なものを使用して設定を行う。

cert.pem ・・・ 対象ドメインの公開鍵を記述した証明書ファイル

chain.pem ・・・ ルート証明書より下位で認証に関わっている公開鍵を記述した証明書ファイル(いわゆる中間証明書)

fullchain.pem ・・・ 上の二つのファイルを結合したファイル

privkey.pem ・・・ 対象ドメインの秘密鍵を記述した証明書ファイル

なお、これらはそれぞれ対応するファイルへのシンボリックリンクで、実体は「/etc/letsencrypt/archive/[発行したドメイン名]/」にあります。 こうすることで新たな証明書を発行する際に、シンボリックリンク先を新しい証明書に切り替えるだけで更新が完了するというわけです。

 

ちなみにDebian系のLinuxであれば証明書の取得から設定まで自動で実施してくれるコマンドもあります。 こちらは手っ取り早く導入したい場合にはいいかもしれません。

./letsencrypt-auto –apache

 

なお、これらの証明書を使用してapacheなどへ設定する方法は需要があれば次回記述するかもしれません。

 

以上、「Let’s Encrypt」におけるwebサーバを稼働させつつ証明書を発行する方法でした。

投稿者プロフィール

monaf
mona digestの管理人でもあります。 こちらは向こうでは外れてしまうような内容を中心にお送りしてまいります。

monacoin:MMditkELuURZgDPduLDLGYArA15G7nWFo3
kumacoin:KHtxC7CdYUUfXLEEprxoN8re58ckhNbSwb
ringo:RVQNKVMRcJ8dCH687zQo3nDUN7JXgoRdid
bitzeny:ZboAKf49TpBg5ef9vSXxNbajmyyjZNNCat

About Author

monaf
mona digestの管理人でもあります。 こちらは向こうでは外れてしまうような内容を中心にお送りしてまいります。 monacoin:MMditkELuURZgDPduLDLGYArA15G7nWFo3 kumacoin:KHtxC7CdYUUfXLEEprxoN8re58ckhNbSwb ringo:RVQNKVMRcJ8dCH687zQo3nDUN7JXgoRdid bitzeny:ZboAKf49TpBg5ef9vSXxNbajmyyjZNNCat

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です