ConoHa VPS に SSL証明書を取得してみた

提供: tknotebook
移動: 案内検索

メインページ>コンピュータの部屋>ConoHa VPS を使ってみた


ConoHa の LAMP環境 で、セキュリティ向上のため SSL を使えるようにするために、Let`s Encrypt から証明書を入手してみました。

条件

Let`s Encrypt で取得できるのはドメインの証明書です。ドメインの所有権を証明します。

Let`s Encrypt証明書を取得するには以下の3条件を作業前にクリアしておく必要があります。

  1. ドメインを所有していること
  2. ドメイン上で HTTP サーバが動いていて Let`s Encrypt からアクセスできること。
  3. ポート443が開いていること。iptables 等を使っている人は 443 を開けてください。

手順

認証書取得用ソフト certbot を github から入手し、インストールして起動します。

Certbot用ディレクトリを作ります

場所はどこでもよいので

mkdir certbot
cd certbot
git clone https://github.com/certbot/certbot
Cloning into 'certbot'...
remote: Counting objects: 41606, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 41606 (delta 1), reused 0 (delta 0), pack-reused 41599
Receiving objects: 100% (41606/41606), 11.67 MiB | 2.85 MiB/s, done.
Resolving deltas: 100% (29658/29658), done.


certbot の起動

cd certbot
./certbot-auto

これで OS が自動的に識別され、必要なパッケージがネットワークからロードされ certbot が起動します。

この起動の仕方だと一気に apacheの設定までやってしまいます。証明書の取得のみなら

./certbot-auto certonly

でいけるそうです。今回は設定までやって貰いました。

Bootstrapping dependencies for RedHat-based OSes...
yum is /usr/bin/yum
Loaded plugins: fastestmirror, security
 :
 :

certbotの操作

centosの場合、certbot は下図のように GUI もどきの CUI 画面を表示しますが、私は TeraTerm を使用しましたが 大丈夫なようです。


サーバのホスト名の入力

お使いの apache の設定によるとは思いますが、最初にサーバのホスト名を聞いてきます。 恐らく 私の httpd.conf に ServerName がないからでしょう。ここにサーバのURLではなくホストのFQDNを入れ、 OKを押します。

Let s Encrypt000.png


e-mailアドレスの入力

次の画面では e-mail アドレスを入力します。特に今回メールのやり取りはなかったのですが、 何かに使うのでしょう。

Let s Encrypt001.png


同意

ここで、同意を求められますので、Agree を選びます。何の同意なのか・・・まだ PDF は読んでません(^^;

Let s Encrypt002.png


Virtualhostの設定を指示

これは Virtualhost をどこに作るか聞いているようです。ssl.conf は元々なかったのですが、ここで ssl.conf を選ぶと ssf.conf が新規作成されました。

Let s Encrypt003.png

SSLへのリダイレクトの有無

とりあえず、MediaWiki等は、まだ設定で SSL対応にできていないので、HTTP/HTTPS の双方でアクセス可能を選択。

MediaWikiの設定の中に http プロトコルを指定しているところが残っているため(^^;
処置が終われば apache の rewrite で プロトコルを強制書き換えする予定です。

Let s Encrypt004.png



無事終了

Let s Encrypt005.png

最後に、3か月後には切れるから更新よろしくと手順が表示されます。コマンド一発で更新出来るのですが、 めんどくさいです(^^;

cron で

certbot-auto renew

をスケジュール実行した方が良いかも。

Let s Encrypt006.png



念のため

service httpd restart

で apache を再起動。

https://www.ssllabs.com/ssltest/analyze.html?d=www.nakamuri.info

で試してみたら証明書は完璧だけど、いろいろボロクソに言われました(^^; いやタダで評価していただいて、ありがたい話です。

修正中です。

証明書の期限の確認方法

証明書更新後、期限がどうなったか気になりますが、certbot-auto renew では表示されません。 以下のコマンドで確認できます。

cd /etc/letsencrypt/live/サイトのホスト名(www.nakamuri.info など)
openssl x509 -in cert.pem -noout -dates

と打つと

notBefore=Feb 22 21:16:00 2017 GMT
notAfter=May 23 21:16:00 2017 GMT

というように表示されます。notBeforeは証明書の生成日、notAfterが期限です。