Apache2のSSL対応
Apacheの準備
$ sudo a2enmod ssl rewrite
$ sudo a2ensite default-ssl
$ sudo systemctl restart apache2
$ nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-18 21:00 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000064s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
$ sudo a2enmod ssl rewrite
$ sudo a2ensite default-ssl
$ sudo systemctl restart apache2
$ nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-18 21:00 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000064s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
上から順に解説していく。
1. SSL通信モジュール、リダイレクトモジュールの適用
2. SSLの設定ファイル有効化
3. Apache2のリスタート
4. SSL通信のチェック
https://[サーバIP]
でアクセスしてindex.html
が表示されることを確認する。
もし表示されなかったら
-
sudo ufw status
で443ポートが開放されているか確認する - ドキュメントルートを変更していないか確認する
- 変更している場合は
default-ssl.conf
のドキュメントルートを修正する
- 変更している場合は
サーバ証明書の取得
ここではLet's Encrypt
というサイトで無料のサーバ証明書を取得して、使用する。
# apt install -y certbot openssl
# certbot certonly --webroot -w [ドキュメントルート] -d [ドメイン名]
同様に各行の解説をしていきます
1. certbot
(Let's Encrypt用)、openssl
(OpenSSL用)のインストール
2. certbot
を利用してサーバ証明書を取得
certbot certonly --webroot -w [ドキュメントルート] -d [ドメイン名]
で入力する情報の解説である
1. 連絡用メールアドレスの入力
2. 規約への同意
3. メーリングリストへの登録
ファイルができているか確認
# ls -l
合計 4
-rw-r--r-- 1 root root 692 9月 18 18:48 README
lrwxrwxrwx 1 root root 37 9月 18 18:50 cert.pem -> ../../archive/disk.mydns.jp/cert2.pem
lrwxrwxrwx 1 root root 38 9月 18 18:50 chain.pem -> ../../archive/disk.mydns.jp/chain2.pem
lrwxrwxrwx 1 root root 42 9月 18 18:50 fullchain.pem -> ../../archive/disk.mydns.jp/fullchain2.pem
lrwxrwxrwx 1 root root 40 9月 18 18:50 privkey.pem -> ../../archive/disk.mydns.jp/privkey2.pem
Apache2の設定
SSL証明書の適用
/etc/apache2/sites-available/default-ssl.conf
32 SSLCertificateFile /etc/letsencrypt/live/disk.mydns.jp/cert.pem
33 SSLCertificateKeyFile /etc/letsencrypt/live/disk.mydns.jp/privkey.pem
34 SSLCertificateChainFile /etc/letsencrypt/live/disk.mydns.jp/chain.pem
32 SSLCertificateFile /etc/letsencrypt/live/disk.mydns.jp/cert.pem
33 SSLCertificateKeyFile /etc/letsencrypt/live/disk.mydns.jp/privkey.pem
34 SSLCertificateChainFile /etc/letsencrypt/live/disk.mydns.jp/chain.pem
上記のように各行を変更する。
https://[サーバIP]
でアクセスしてindex.html
が表示されることを確認する。
HTTPからHTTPSへのリダイレクト
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[ドメイン名]
RewriteRule ^/(.*)$ https://[ドメイン名]/$1 [R=301,L]
上記を追記することでHTTPSのページに必ずリダイレクトさせることができる。
Let's Encryptの自動更新
/etc/crontab
* * * /10 * * root certbot renew
* * * /10 * * root certbot renew
10日ごとに確認する場合は上記のように追記する。
設定の適用と確認
$ sudo systemctl restart apache2
$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-09-18 19:17:30 JST; 2h 40min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 13140 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 13159 (apache2)
Tasks: 8 (limit: 9388)
Memory: 15.4M
CGroup: /system.slice/apache2.service
├─13159 /usr/sbin/apache2 -k start
├─13160 /usr/sbin/apache2 -k start
├─13161 /usr/sbin/apache2 -k start
├─13162 /usr/sbin/apache2 -k start
├─13163 /usr/sbin/apache2 -k start
├─13164 /usr/sbin/apache2 -k start
├─13168 /usr/sbin/apache2 -k start
└─13234 /usr/sbin/apache2 -k start
9月 18 19:17:30 hostname systemd[1]: Starting The Apache HTTP Server...
9月 18 19:17:30 hostname systemd[1]: Started The Apache HTTP Server.
$ sudo systemctl restart apache2
$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-09-18 19:17:30 JST; 2h 40min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 13140 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 13159 (apache2)
Tasks: 8 (limit: 9388)
Memory: 15.4M
CGroup: /system.slice/apache2.service
├─13159 /usr/sbin/apache2 -k start
├─13160 /usr/sbin/apache2 -k start
├─13161 /usr/sbin/apache2 -k start
├─13162 /usr/sbin/apache2 -k start
├─13163 /usr/sbin/apache2 -k start
├─13164 /usr/sbin/apache2 -k start
├─13168 /usr/sbin/apache2 -k start
└─13234 /usr/sbin/apache2 -k start
9月 18 19:17:30 hostname systemd[1]: Starting The Apache HTTP Server...
9月 18 19:17:30 hostname systemd[1]: Started The Apache HTTP Server.
上記のようになれば成功
あとはhttps://[ドメイン名]
とhttp://[ドメイン名]
にアクセスして両方ともhttps://[ドメイン名]
に接続できていることが確認できればOK
Author And Source
この問題について(Apache2のSSL対応), 我々は、より多くの情報をここで見つけました https://qiita.com/Disk_MJM/items/f8992fd1805d5d6dc896著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .