2021/07/17(土)WebサーバをHTTPSに対応させる
2021/07/17 19:42
最近はLet's Encryptの証明書発行もかなり簡単にやれるというので、当サイトもついに対応することにした。
基本的には下記のやり方通り。
Debian9 + Apache に"Let's Encrypt"をセットアップしてみた!! : プログラミング Tips
ただし、certbotコマンドについてはサブドメインがあるので、
#certbot certonly --webroot -w /var/www/html -d dt8.jp www.dt8.jpとした。
また、SSLCipherSuiteの設定は息が長くなるよう、
mod_sslで使用するSSLCipherSuiteの設定を詰めてみる '20 - Qiita
に従った。
ローカルからのアクセスでhttps://~が表示されることを確認。
問題なさそうなので、ファイアウォール設定を変更しIPv4 ポート443の外部アクセスを開けた。
/etc/iptables/rules.v4
を編集して、
#netfilter-persistent reloadサーバ入れ替えた際に、かなり雑に作業をしてしまったのでiptablesの管理方法をちゃんと定義できてない。
年末までになんとかしよう。
SSL Server Testで、一応A判定が出ていることを確認。
https://www.ssllabs.com/ssltest/analyze.html?d=www.dt8.jp
さらに証明書更新したら、自動的にサーバを再起動してメールを送る設定にする。
/etc/letsencrypt/renewal-hooks/
に適当なシェルを作成し、
#!/bin/bash /usr/sbin/apache2ctl restart /bin/echo "証明書を更新し、Webサーバを再起動しました。" | /usr/bin/mail -s "証明書更新・Webサーバ再起動通知" -r mailaddress@example.com mailaddress@example.comとか書く。
クリティカルなサービスがないので完全自動で良いし、restartで安全に。
当たり前だが、落とせないサービスならこんな事やってはいけない。
念の為動作テストする。
#certbot renew --force-renewal証明書の期限更新~Webサーバの再起動~メール送信の一連の処理が行われることを確認。
更新制限があるので、何度もテストすのはNG。
あとは、サイト内にhttp://~から書いているところがあるかもしれないので、気づいたら直す。
そもそもリニューアルを予定しているのでちまちまやってく。
半年以上安定したら、mod_rewriteでhttp→httpsに振るようにしたい。
[2021/10/14追記]
上の手順で十分だと思っていたら、3ヶ月後の証明書更新が見事に失敗していた。
/var/log/letsencrypt/letsencrypt.logに出力されたエラー内容は、下記。
certbot.errors.MissingCommandlineFlag: Missing command line flag or config entry for this setting: Select the webroot for dt8.jp: Choices: ['Enter a new webroot', '/var/www/html'] (You can set this with the --webroot-path flag) 2021-10-13 17:06:46,513:ERROR:certbot.renewal:All renewal attempts failed. The following certs could not be renewed: 2021-10-13 17:06:46,514:ERROR:certbot.renewal: /etc/letsencrypt/live/dt8.jp/fullchain.pem (failure)dt8.jpのエントリがないと言われる。
あれ、そうなのか… force-renewalが成功したのはなんでだろう。
/etc/letsencrypt/renewal/dt8.jp.conf
の、
[[webroot_map]]
に、
www.dt8.jp と同じ内容で、dt8.jpの行を追加。
#certbot renew --dry-runしたら通るようになったので次のcronを待って、証明書が更新されることを確認した。
2021/07/17(土)debianのexim3で外部メール送信できるようにする
2021/07/17 20:56
現状exim4が動いているのだが、外部にメール送信ができない。
zabbixとかは独自にSMTPサーバが登録できるのでごまかしていたが、
ここ来て流石にサーバ内からメールを投げたいケースが出てきた。
ということで、外部にメール送信できるようにする
基本的に下記の手順通りでよし。
Exim4/外部SMTPサーバー経由でメールを送信したい(Debian) - Void of Knowledge
mailコマンドで送信できることを確認。
echo "test" | mail -s "test title" -r from@example.com to@example.com今度時間あるときに転送周りとcronメールも整理しよう。