【CentOS7/Apache】Lets Encrypt サーバー証明書の導入方法

■ 目次


 

はじめに

現在インフラまたはクラウド関連で転職活動中の まるちゃん(@M_Maru76) です。インフラが好きすぎて、自宅で VMware ESXi のサーバーを建てて勉強中です!

 

1. Let’s Encrypt とは

自分が所有しているドメインのSSL/TLSサーバー証明書を無料で発行してくれる認証局(CA)です。詳しく知りたい方は、【ISRG】をご参照ください。

 

2. Let’s Encrypt の前提条件

独自ドメインを所有していることと、そのドメインに対応するグローバルIPアドレスを持つサーバーがインターネットに公開され、Let’s EncryptのサーバーからHTTPまたはHTTPS接続が出来ること。まとめると
  • 独自ドメイン所有
  • WEBサイトが世界に公開
  • メールアドレスが必須(Gmailなど)
各種バージョンについて
ホスト
  • VMware ESXi 6.7(2)
ゲスト
  • OS
    • CentOS-7-x86_64-Minimal-1810.iso
  • Apache
    • ver 2.4.7

 

3. サーバーの準備

VMware ESXi(ホスト)内で建てた CentOS 7 Minimal(ゲスト) で作業をしています。サーバーを建ててから、更新とか一切してない状態から作業を行っています。
 

3.0. サーバー関連の設定など

作業自体は、すべて rootユーザー で作業しています。
 

3.1. ファイアーウォール の停止と自動停止

 

3.2. SELinux の無効

 

3.3. 更新 など

 

3.4. Apache サーバーの設定など

設定に異常が無いか確認する際は、下記のコマンドを実行
 

3.5. Apache のインストール

 

3.6. サーバーネーム の変更

 

3.7. テストページ の作成

 

3.8. ブラウザーからサーバーにアクセス


 

4. Let’s Encrypt の導入方法

Amazon Linuxでは、以下の作業以外にオプションが必要になります。作業自体は、すべて rootユーザー で作業しています。
 

4.1. EPELリポジトリのインストール

 

4.2. Let’s Encrypt クライアント 「certbot」 をインストール

 

4.3. certbot実行時にhttpdの再起動が実行

 

4.4. certbotコマンドで証明書の取得

オプションについて
  • certonly
    • 証明書の取得の指定
  • –webroot / -w
    • ドキュメントルートの指定
  • –domain / -d
    • 証明書を取得するドメイン名の指定
  • –email / -m
    • メールアドレスの指定
  • –non-interactive / -n
    • 非対話メッセージの指定
 
証明書が保存れている場所について
  • 各種証明書の置き場
    • /etc/letsencrypt/live/www.example.com/
  • 証明書
    • cert.pem
  • 証明書+中間CA証明書
    • fullchain.pem
  • 秘密鍵
    • privkey.pem
  • 中間CA証明書
    • chain.pem

 

5. HTTPS の設定

HTTPSでアクセス出来るように設定をしています。
 

5.1. 鍵 の場所指定など

 

5.2. HTTPアクセスをHTTPSリダイレクトへ

こちらの記述は自由です。
 

5.3. Apache の再起動

 

5.4. ブラウザーからサーバーにアクセス


 

■ 最後に

以上で、CentOS7 の Apache & Let’s Encrypt の導入方法でした。
もし、 サイト自体が表示されない際は「httpd -t」 を実行してみてください。そして本当にポートが開いてるかを再度確認してみてください。