【Linux】Let's EncryptでSSL証明書を発行しApacheに組み込み(ドメイン認証)


このサイト↓を利用させてもらいます。



スクリーンショット 2020-10-30 100726

ドメインは2つ指定します。ルートドメイン「example.com」(ネイキッドドメイン/Zone Appexとも)と、サブドメイン用にワイルドカードドメイン「*.expample.com」の様に指定します。

「トークンを取得」ボタンで、トークン値が発行されます。

スクリーンショット 2020-10-30 100828


スクリーンショット 2020-10-30 100842

dns-01タブを選択して、DNSレコードによるドメインの所有権確認方式を使って進めます。これには該当ドメインのネームサーバ管理権限が必要となります。(http-01を選んだ場合は、該当ドメインで公開されているホームページ上にトークン値をコンテンツとして載せることで所有権を保証することになると思われます。)

スクリーンショット 2020-10-30 101010

ここまでの操作でトークン値が発行されます。これらを、自身で管理している該当ドメインのネームサーバでTXTレコードとして設定します。

スクリーンショット 2020-10-30 103836

TXTレコードを設定したら、「確認」ボタンで所有権確認を行います。

スクリーンショット 2020-10-30 101010-2
スクリーンショット 2020-10-30 103908

所有権の確認に成功したら、証明書発行申請に進みます。

スクリーンショット 2020-10-30 131446

「生成(2048bits)」ボタンを押して、まず秘密鍵を生成します。

スクリーンショット 2020-10-30 131517
スクリーンショット 2020-10-30 131535
スクリーンショット 2020-10-30 131620

ここで生成された秘密鍵は後ほどWebサーバに設置します。

続けて、「証明書発行申請」ボタンをおして、SSL証明書発行に進みます。

スクリーンショット 2020-10-30 131640
スクリーンショット 2020-10-30 131701
スクリーンショット 2020-10-30 131723

サーバ証明書、中間証明書、サーバ証明書+中間証明書の3つが生成されます。

発行されたSSL証明書ファイルをWebサーバ上に配置して、Apacheの設定に記載します。以下はApacheでの設定例です。

[root@example conf.d]# cat /etc/httpd/conf.d/example.com.conf
NameVirtualHost *:443

<VirtualHost *:80>
 ServerName wiki.example.com:80
 RewriteEngine on
 RewriteCond %{HTTP_HOST} ^wiki\.example\.com
 RewriteRule ^/(.*)$ https://wiki.example.com/$1 [R=301,L]
</VirtualHost>

LoadModule ssl_module modules/mod_ssl.so
Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin

<VirtualHost *:443>
   ErrorLog logs/ssl_error_log
   LogLevel warn
   SSLEngine on
   ServerName "wiki.example.com"
   DocumentRoot "/var/www/html/wiki"
   SSLProtocol all -SSLv2 -SSLv3
   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
   SSLCertificateFile conf/ssl/cert.pem #サーバ証明書
   SSLCertificateKeyFile conf/ssl/server.key #秘密鍵
   SSLCertificateChainFile conf/ssl/chain.pem #サーバ証明書 + 中間証明書
   <Files ~ "\.(cgi|shtml|phtml|php3?)$">
       SSLOptions +StdEnvVars
   </Files>
   SetEnvIf User-Agent ".*MSIE.*" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
   CustomLog logs/ssl_access_log ltsv_ssl
</VirtualHost>

念のため、Apache設定ファイルの書式チェックを行ってから再起動をかけてください。

$ httpd -t

Apacheサービスを再起動したら設置完了です。

$ service httpd restart

ブラウザなどでHTTPSアクセスして、問題なければ完了となります。

--- 記事はここまでとなります、この下に記事はありません ---

お役に立てれば、ご寄付をお願いします。

ここから先は

0字

¥ 110

期間限定!Amazon Payで支払うと抽選で
Amazonギフトカード5,000円分が当たる

この記事が気に入ったらチップで応援してみませんか?