Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから
公開日:2015年12月4日
最終更新日:2016年4月13日

無料SSL証明書の Let's Encrypt が公開されたので実際に試してみた

はじめに

2016年4月13日追記

Let's Encript の正式版がリリースされました。若干変更があるので、詳しくは下記記事を参照してください。

------

先日の記事でもご紹介しましたが、無料で SSL 証明書を発行してくれる Let’s Encrypt がパブリックベータとなり、誰でも利用することができるようになったので、CentOS 6.7 + Apache で SSL証明書の作成と設定を試してみました。

CentOS 6.7 では、何かとひっかかる部分が多かったので参考になれば幸いです。

Let’s Encrypt の特徴

Let’s Encrypt には以下の特徴があります(パブリックベータ時点)。

  • 無料で SSL証明書を取得できる
  • ルート証明書に承認されているから多くの環境で動作する
  • 取得できる証明書はドメイン認証
  • 証明書の期間は90日間。これは正式リリース後も変わらない。
  • 60日での更新を推奨している
  • ACME プロトコルにより証明書の自動更新を目指しているが、現時点では不完全
  • 複数ドメインのSSL証明書に対応している
  • ワイルドカード証明書には対応していない
  • EVSSL証明書には対応していない
  • メールアドレスがアカウントとなる

こんな感じでしょうか。もう少し細かい制約もありますが、バンバン使わない限り大丈夫だと思います。

事前準備

事前に以下のパッケージをインストールしておきます。

 Let’s Encypt Client のインストール

どこのディレクトリでも構わないので、以下のコマンドを実行して Let’s Encrypt Client をインストールします。

そうすると、依存するパッケージ(python等)もインストールしてくれます。

しかし、スクリプトを実行しようとすると以下のエラーが表示され、スクリプトが実行できません。

エラーメッセージにあるように、--debug フラグをつけて以下のように実行すると、問題なく実行が完了しヘルプが表示されます。

 SSL証明書の作成と設定

Debian 系の OS だと、以下のコマンドを実行することで、SSL証明書の作成から設定まで Apache プラグインが自動で行ってくれるそうですが、CentOS ではいろいろ試しましたがうまくいきませんでした。もともとできないと書いてありますしね。

できないものは仕方がないので、SSL証明書の作成のみ行うコマンドを実行します。今回は www.aruse.xyz というサーバーのSSL証明書を作成してみます。

事前に Apache を終了しておかないと途中でエラーが表示されるので、Apache を停止します。

サーバー名を指定して、下記コマンドを実行します。

しかし、また以下のエラーが表示されます。

仕方がないので、先ほどと同じように —debug フラグをつけて実行します。

すると、メールアドレスの入力が求められるので、メールアドレスを入力して、<了解>を選択します。

Pic01

利用規約に同意するか聞かれるので、<Agree>を選択します。

Pic02

インストールが続いて、最後に以下のメッセージが表示されれば SSL証明書の作成は完了です。

メッセージからすると、/etc/letsencrypt/live/www.aruse.xyz/ にSSL証明書を作成したようなので、以下のように内容を確認します。

内容が分かったので、ssl.conf と httpd.conf を以下のように変更します。

Apache を起動します。

この状態で、https://www.aruse.xyz にアクセスすると問題なくアクセスできることが確認できます。

Pic08

SSL証明書のチェーンも問題ないことが分かります。

Pic04

これで設定完了ですね。

期限切れが近づいた時は、パブリックベータ時点では同じ作業を繰り返します。正式版がリリースされたときにはSSL証明書更新の自動化が実現していると思います。

複数ドメインのSSL証明書

Let’s Encrypt の SSL証明書 は1つで複数ドメインに対応しているので、実際に行ってみましょう。

まず、Apache を終了しておきます。

今度は、www.aruse.xyz と aruse.xyz のサーバー名に対応した SSL証明書を作成します。

下記コマンドを実行します。--degub フラグは最初からつけておきます。

すると、www.aruse.xyz は既に作成されているけどいいのかと聞いてくるので、<Replace>を選択します。

Pic05

SSL証明書の作成が終了すると、以下のメッセージが表示されます。今回はパスが変わらなかったようですね。

httpd.conf は以下のように設定します。ssl.conf は今回変更はありません。

Apache を起動します。

https://www.aruse.xyz と https://aruse.xyz にアクセスしてみます。

Pic06

Pic07

どちらも問題ありませんね。

おわりに

パブリックベータになった Let’s Encrypt で SSL証明書の作り方と設定方法を見てきましたが、いかがだったでしょうか。

マニュアルとはちょっと齟齬はありましたが、かなり簡単に SSL証明書が作成できるのが分かったのではないかと思います。

業務で行っているサービスでは、ユーザーに不安を与えてしまうかもしれませんが、個人や管理画面などで使うには、Let’s Encrypt はとてもよいのではないかと思います。例えば、phpMyAdmin の HTTPS 化なんて向いています。

情報はまだ英語でとっつきにくいかもしれませんが、試してみる価値はありますね。


スポンサーリンク




カテゴリー:ブログ

Twitter でも、いろんな情報を発信しています。


コメントを残す

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

CAPTCHA