5分でできる!Apache2.4をZeroSSLで簡単https化【コマンド不要】

ソフトウェア

何故かWindows上のApacheLet’s Encrypt が上手くいかずZeroSSLを使ったところ5分くらいで無事証明署ファイルをダウンロードでき、その後httpsアクセスできるようになったので、そのときの手順を備忘録として残しておきます。

コマンドライン(黒い画面)を使わずにSSL証明書をセットアップできます。

今回は、ドキュメントルート以下の特定の位置に指定ファイルを閲覧できる状態にしてサイト所有者であることを証明する方法でいきます。
(DNSレコードのだと、若干面倒。指定されたファイルを使う方がWindowsでは楽ちん!!

1,ZeroSSlに登録

アカウントを作成する

ZeoSSLで証明書を発行できるように、サイト登録まで行っておきます。

Free SSL Certificates and SSL Tools - ZeroSSL
Free SSL certificates issued instantly online, supporting ACME clients, SSL monitoring, quick validation and automated SSL renewal via ZeroSSL Bot or REST API.

上のリンクから、公式サイトに行き、会員登録をします。

必要なのは、メアドだけ。パスワードを適当に定めればOKです。

「無料プラン」であることを確認しておきます。

ドメインを登録する

続いて、自分のドメインを登録します。

新しい証明書の発行を選択します。

ここではexample.comを例示として登録していきます。(所有者証明から先は進めないけど)

うっかり1yearの方を選ぶと有料です、ご注意下さい!無料は90-Dayだけ

ここはオンにしておきます

ちなみに「検証の前に、連絡先情報と証明書のCSRを自動生成します。連絡先などを手動入力したいならチェックを外してください。」みたいなことが書いてあります。

ここで「Free」が「Selected」であることを確認しておきます。

そして、右下の「Next Step」で次に進みましょう。

サイト所有者であることを証明する

ファイルを設置する方式で所有者であることを証明します。

「HTTP File Upload」を選択。

「Download Auth File」をクリックしてダウンロードしたtxtファイルを、指示通りの箇所に設置します。

ドキュメントルートが「前略)¥test」という場所のフォルダだとすると、以下のような感じです。
フォルダ名を間違えないようにしましょう。

やたら長い名前のtxtファイルが、ダウンロードしたやつです。

http://example.com/.well-known/pki-validation/8B82096E74641D2BBEB94B2FDE64C597.txt
アクセスできることを自身で確認した後に、ZeroSSLのサイトに戻り右下の「Next Step」を押します
URLは各自のものに置き換えましょう。テキストファイル名も多分各々で異なります。)

なお、アクセスできない!という時は、ポート80番の開放がされているか確認しましょう(ポート開放手順はこちらを参考にしてください)

「Verify Dmain」をクリックし、ZeroSSL側でもファイルが確認されたら証明ファイルの種類の選択画面に行きます。

Apache」を選択。

zipファイルをダウンロードできるようになるので、保存して解凍。3つのファイルがあるはずです。

  • ca_bundle.crt(CA 証明書)
  • certificate.crt(サーバ証明書)
  • private.key(秘密鍵)

これで証明書ファイル一式の入手に成功しました。

首尾よく行うとここまで5分でもかかりません。

証明書などのファイル3点セットを、C:\apache\zerossl にでもコピペしておきましょう。

2,apacheの設定ファイルでSSL化設定

ここからは、Apacheの設定ファイルにいくつか記述していきます。

httpd.confでの設定

C:\apache\conf\httpd.conf
を編集します。

編集するのは2カ所だけ!

1,「mod_ssl」を有効化

まず、「mod_ssl」を有効化します。

#LoadModule ssl_module modules/mod_ssl.so

上の行の#を削除して、コメントアウトを解除します。下のように。

LoadModule ssl_module modules/mod_ssl.so

2,httpd-ssl.confを読み込ませる

2つめは、httpd-ssl.confを読み込むようにします。

#Include conf/extra/httpd-ssl.conf

上の行の#を削除して、コメントアウトを解除します。下のように。

Include conf/extra/httpd-ssl.conf

あとは上書き保存をして、Apacheを再起動します。

httpd-ssl.confでの設定

1,環境に応じて変更

C:\apache\conf\extra\httpd-ssl.conf
を編集します。

<VirtualHost _default_:443>

  ーーー中略ーーー

DocumentRoot "C:\apache\htdocs\public"
ServerName example.com:443
ServerAdmin 適当なメアド(デフォルト設定からは変更すること!

まず、上記の3項目をそれぞれにあった形に変更します。

「ServerAdmin」のメアドは、架空でもいいのでデフォルト設定から変更しないといけません。
(でないとエラーになるっぽいですね)

2,証明ファイル3点セットの場所を指定

ファイル3点がC:\apache\zerossl にあることを前提にしています。

httpd-ssl.confの3行の設定をこのように書き換えます。

SSLCertificateFile "C:\apache\zerossl\certificate.crt"

SSLCertificateKeyFile "C:\apache\zerossl\private.key"

SSLCertificateChainFile "C:\apache\zerossl\ca_bundle.crt"

1行1行が離れているので、それぞれの設定項目名を検索して書き換えましょう

上書き保存をしたら、Apacheを再起動させましょう。

3,443番のポート解放(ルーターとOSで設定)

Windowsの設定

こちらのサイトを参考に、443番ポートを解放します。

TCP,UDPとりあえず両方の通信を許可しておけば不具合はありません。

Security check

「受信の規則」「送信の規則」の両方を設定する必要があるのでご注意下さい!

なお、80番ポートもこの際に、まだ未解放なら併せて解放しておきましょう

ルーターの設定

  1. サーバーとして使うWindows PCのIPアドレスを固定
  2. そのIPアドレスに対して「ポート転送」ルールの追加
  3. ポート80,443を設定

大体この順番で作業すれば成功します。

ルーターの設定は各社千差万別なので、各自調べましょう。

解放できているかは、ポート開放チェッカーで調べられます。

403 Forbidden

まとめ Windowsで動かすApacheをSSL(https)化 手順

  1. ZeroSSLで証明書ファイル取得
    1. アカウント作成
    2. ドメイン登録
    3. ダウンロードしたファイルを所定の場所に公開
    4. 所有者だと証明完了
    5. 証明ファイル3点セットをダウンロード
  2. 証明ファイルをApacheにセット
    1. 証明3点セットを適当な場所にコピペ
    2. httpd.confでssl化用モジュールを読み込ませる
    3. httpd.confでhttpd-ssl.confを読み込ませる
    4. httpd-ssl.confでドメインなど設定
    5. httpd-ssl.confに証明書3点セットの場所を記述
  3. ポート開放
    1. Windowsのファイヤウォール設定で、443番を解放(80も)
    2. ルーターの設定で443番を解放(80も)
    3. ポート開放チェッカーで確認

一連の手順に沿って作業すれば必ず、https://~~で自分のサイトにアクセスできるようになるのでご安心ください。

apache関連の記事こちらもごらん下さい!

タイトルとURLをコピーしました