阿部寛もすなる https:// 対応を、わたしもしてみんとす (https://www.itmedia.co.jp/news/articles/2508/27/news086.html)。
最近は、URL が https:// でない (http:// である) WWWサイト (つまり SSL を使わないもの) は、 WWWブラウザに「安全ではありません」といわれる。 iPhone の Safari でもすんなり接続してもらえなくなって、ストレスがたまる (時間割を iPhone で確認しているので、教室番号がすぐ見えないと困る)。
私は、大学の研究室に置いてあるマシン以外に、 さくらインターネットのマシンをWWWサーバーとして利用していて、 後者だけ https:// にしてある。 以前調べたとき、 大学に置いてあるサーバーを https:// にするのはちょっと面倒な感じがして (証明書をどうやって取るか、もし有料の場合どうやって支払うか)、 そちらは放置してあった。
今回、WWWサーバーの見直し作業をしていて、https:// 対応は、 Certbot を使って割と簡単に実現できそうに思えたので (研究室のWWWサーバーそのものは実際にインターネットに接続されて、 すでに http:// でアクセスできるようになっている、 そういう場合は簡単にできるらしい)、試しにやってみることにした。
| MacPorts で Cerbot をインストール |
sudo port install certbot |
| 証明書を入手する |
sudo certbot certonly \ --webroot \ -w WWWのrootディレクトリィ \ -d WWWサーバーのドメイン名 |
簡単な質問をされる (規約に同意するかとか、メールアドレスを教えてとか)。 意外とあっさりと受け付けてもらえる。 /opt/local/etc/letsencrypt/archive/ドメイン名/ に cert1.pem (証明書(公開鍵)), chain1.pem (中間証明書), privkey1.pem (秘密鍵), fullchain1.pem (証明書+中間証明書) が保存される。
Apache の方では httpd.conf を少し直す必要がある。
| httpd.conf の変更点 (2つ) |
LoadModule ssl_module lib/apache2/modules/mod_ssl.so Include etc/apache2/extra/httpd-ssl.conf |
httpd-ssl.conf は例えば次のような感じ
| /opt/local/etc/apache2/extra/httpd-ssl.conf |
Listen 443
<VirtualHost *:443>
ServerName nalab.mind.meiji.ac.jp
DocumentRoot "WWWのrootディレクトリィ"
SSLEngine on
SSLCertificateFile "/opt/local/etc/letsencrypt/live/ドメイン名/fullchain.pem"
SSLCertificateKeyFile "/opt/local/etc/letsencrypt/live/ドメイン名/privkey.pem"
<Directory "WWWのrootディレクトリィ">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog "/opt/local/var/log/apache2/error_log"
CustomLog "/opt/local/var/log/apache2/access_log" common
</VirtualHost>
|
発行される証明書の有効期間は90日である。いつでも更新のお願いをして良いが、 期限まで30日を切らないと実際には更新されない。 ChatGPT のお勧めにしたがって、 証明書を自動的に更新するために、crontab に
MAILTO="私のメールアドレス" 0 5 * * 1 /opt/local/bin/certbot renew --quiet --deploy-hook "/opt/local/sbin/apachectl -k graceful" |
(2025/11/26) 研究室のルーターの設定を SSL が通るように直して、試してみた。 無事 https:// での接続に成功した (あっけない)。URL書いておこう。
今後は http:// でのアクセスをやめるかどうか、 考えるのかな。それはあわてなくてよいか。WWWブラウザに http:// がー、と言われないのは気持ちが良い。
(順番が逆になったけれど Cerbot, Let's Encrypt とは一体何? 怪しいものではないと思ってやったけれど、正体は知っておくべきですよね。)
まず “About Certbot” の What is Cerbot? から
Certbot is a free, open source software tool for automatically using Let's Encrypt certificates on manually-administrated websites to enable HTTPS.
Certbot is made by the Electronic Frontier Foundation (EFF), a 501(c)3 nonprofit based in San Francisco, CA, that defends digital privacy, free speech, and innovation.
つまり、Let's Encrypt 証明書を利用して、 ウェブサイトで HTTPS を実現するためのソフトウェア・ツールであると。 確かにインストールしたのは Cerbot だったね。
一方、 Let's Encrypt は、
Encryption for Everybodyみんなのための証明書。 (700M とは7億?すごいですね。) 7億以上のウェブサイトに無料の TLS 証明書を無償で提供する。
A nonprofit providing free TLS certificates to more than 700M websites.
Let's Encrypt は、 Web全体のHTTPS化を目指して、10年以上 (2024年が10年目) サービスを続けている、 無料かつ自動化された証明書発行基盤である。 証明書が失効した場合の対応も自動化された。 証明書の有効期間を短く6日とする(セキュリティが向上する) 仕組みも準備が進められている。 助成金 (40%), 企業スポンサー (47%), 個人寄付 (10%) によりまかなわれている、 とのこと。