ConoHa VPS に SSL証明書を取得してみた
メインページ>コンピュータの部屋>ConoHa VPS を使ってみた
ConoHa の LAMP環境 で、セキュリティ向上のため SSL を使えるようにするために、Let`s Encrypt から証明書を入手してみました。
目次
条件
Let`s Encrypt で取得できるのはドメインの証明書です。ドメインの所有権を証明します。
Let`s Encrypt証明書を取得するには以下の3条件を作業前にクリアしておく必要があります。
- ドメインを所有していること
- ドメイン上で HTTP サーバが動いていて Let`s Encrypt からアクセスできること。
- ポート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を押します。
e-mailアドレスの入力
次の画面では e-mail アドレスを入力します。特に今回メールのやり取りはなかったのですが、 何かに使うのでしょう。
同意
ここで、同意を求められますので、Agree を選びます。何の同意なのか・・・まだ PDF は読んでません(^^;
Virtualhostの設定を指示
これは Virtualhost をどこに作るか聞いているようです。ssl.conf は元々なかったのですが、ここで ssl.conf を選ぶと ssf.conf が新規作成されました。
SSLへのリダイレクトの有無
とりあえず、MediaWiki等は、まだ設定で SSL対応にできていないので、HTTP/HTTPS の双方でアクセス可能を選択。
MediaWikiの設定の中に http プロトコルを指定しているところが残っているため(^^; 処置が終われば apache の rewrite で プロトコルを強制書き換えする予定です。
無事終了
最後に、3か月後には切れるから更新よろしくと手順が表示されます。コマンド一発で更新出来るのですが、 めんどくさいです(^^;
cron で
certbot-auto renew
をスケジュール実行した方が良いかも。
念のため
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が期限です。