WebページのHTTPS化

2025年12月27日

旧サーバーのときからいつかやろうと思っていたHTTPS化、サーバーを新しくして良い機会なのでやってみた。

ApacheをHTTP化する

まずはApache自体のHTTPS化を以下の手順で行う。

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl restart apache2

早い話がApacheに暗号化モジュールがあるから、仮想サーバーと共に有効化する。その後、

sudo ufw allow https

でポート(443)を開ける。

Win11マシンから”https://~”でホームページにアクセスすると「この接続ではプライバシーが保護されません」の警告が出るがとりあえずhttpsで開けるようにはなった。

が、この警告を何とかしたい!

調べてみると正式な(公式な?)SSL証明書がないために警告がでるらしく、SSL証明書を準備すれば解決しそうだ。

Certbotのインストール

旧サーバーではまぁまぁ手間かけてSSL証明書を作成していたが、Ubuntuでは「Let’s Encrypt」のSSL証明書を取得する”Certbot”が使えるらしく、これをインストールする。手順は以下。

  • インストールに必要なリポジトリを追加する
sudo apt update
sudo apt install software-properties-common -y
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
  • Certbotをインストールする
sudo apt install certbot python3-certbot-apache -y

SSL証明書の取得と設定

Certbotをインストールできたら、CertbotでSSL証明書を取得、Apacheを設定する。

  • CertbotでSSL証明書を取得する。
sudo certbot --apache

例の如く(?)、いろいろ聞かれるので答えていく

  • メールアドレス:管理者のアドレスを答えておく
  • 利用規約への同意:yesしかないよな~
  • メールの共有に関するオプション:メールアドレスを登録してよいかどうか?
  • 証明書を取得するドメインの選択:”www.~”を答えておかないと、ちゃんと動作しなかった

以上を答えると、ちょっと時間かかってSSL証明書を取得、apacheの設定が行われる。メッセージを見ると、どうやらcronで自動更新するように設定されるようなので、

sudo systemctl status certbot.timer

でアクティブになっていることを確認する。

再びWin11マシンから"https://~"でアクセスし、警告なしにページを開けることを確認した。

が、"http://~"ではちゃんとスタイルが適用されるのに"https://~"だと適用されない…

あれこれ確認して、スタイル設定ファイル内の記述(背景画像ファイルへのurl)がSSL証明書を取得したアドレスに修正してちゃんと動作するようになった。あとは、"http://~"でアクセスがあった時に"https://~"にリダイレクトするよう/etc/apache2/sites-enabled/000-default.confに

Redirect "/" "https://ホスト名/"

を追記してHTTPS化完了!