無料SSL(TLS)の中にLet’s Encryptがあのですが、ドメインには設定できますがIPアドレスに設定することができません。今回はIPアドレスにSSLを設定できるZeroSSLをご紹介したいともいます。
設定の流れ
設定の大きな流れは以下の通りです。
1. ZeroSSLのサイトから証明書を取得・ダウンロードする 2. 自分のWebサイトにダウンロードした証明書を設置する 3. httpをhttpsに強制リダイレクトするよう設定する
ちなみに設定した完了は以下の通りです。
さくらVPS ・CentOS7 ・Apache2.4.6
1. 証明書の取得
まずZeroSSLのWebサイトへアクセスしアカウントを作成します。
アカウント作成後ログインした画面です。「New Certificate」をクリック。
「Domains」画面です。「Enter Domains」にSSLを設定したいIPアドレスを入力しましょう。自動でバリデーションチェックされます。
「Validity」画面で「90-Day Certificate」を選択してください。
Freeプランで私はいきます。
続く部分は少し長いです。最初に「DNS(CNAME)」が選択されていると思いますが「HTTP File Upload」に変更してください。それから以下のように対応します。
1. ①の「Download Auth File」をクリックしてtxtファイルをダウンロードする 2. ダウンロードしたtxtファイルを私の環境の場合以下の場所に置く /var/www/html/.well-known/pki-validation/ ディレクトリがない場合は作成する。(下を参照) 3. ブラウザから設置したtxtファイルにアクセスできるか確認する。③に記載されているURLにアクセスする。 4. 上記にアクセス出来たら「Next Step」をクリック
/.well-known/pki-validation/ というディレクトリは存在しないので作成します。mkdir -pオプションをつけると一気に作成できます。
$ mkdir -p /var/www/html/.well-known/pki-validation/
やっとダウンロード画面にたどり着きました。Webサーバーを選択します。「Apache」を選んで「Download Certificate (.zip)」をクリックしてダウンロードしてください。そしてNext Stepへ。
これでダウンロード完了です!
2. 証明書の設置・設定
ダウンロードしたファイルを解凍すると以下のファイルが出てきます。
・certificate.crt ・ca_bundle.crt ・private.key
上記3つのファイルをサーバーの以下の場所に置きます。
/etc/ssl/
そして/etc/httpd/conf.d/ssl.confの設定を変更します。設定変更するときはconfファイルをバックアップとることをお勧めします。少し変更するだけでApacheが動かなくなってしまうことがあります。私も設定内容を一文字間違えて動かなくなって焦ったことがあります…
以下の左側の文字が書かれているところを探して書き換えてください。
SSLEngine on SSLCertificateFile /etc/ssl/certificate.crt SSLCertificateKeyFile /etc/ssl/private.key SSLCertificateChainFile /etc/ssl/ca_bundle.crt
Apacheを再起動します
systemctl restart httpd
ここまでくると必要あるかはわかりませんが、一応「Chceck Installation」をクリックします。設定が成功していると成功アナウンスが表示されます。
ブラウザから確認してみましょう。きちんとSSLがあたっていますね。
3. httpからhttpsへ強制リダイレクトさせる
せっかくhttpsにできましたので、httpから強制的にhttpsへリダイレクトさせるために.htaccessを以下のように変更します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
まとめ
まとめというか今後の課題ですが、ZeroSSLは90日しか有効期限がありません。ZeroSSLの自動更新ができないか検討していきたいと思います。
コメント