HTTPS対応

情報セキュリティの問題が世界的に議論になりつつある昨今、勉強の意味も含めて、自宅サーバのWebサービスもHTTPS対応させた。

環境

サーバの稼働環境は以下の通り。今の時代にはちと非力だが、何とか頑張っている。

  • ハードウェア:自作PC、まぁまぁ古いCPU(Pentium Dual-Core)
  • ソフトウェア:Ubuntu 16.04 LTS、Apache2
  • SSL証明書発行元サービス:Let’s Encrypt

 

作業

大雑把に言って、以下の2種類の作業が必要だった。

  1. SSL証明書の取得
  2. Apache2のHTTPS対応設定
  3. ポート転送設定

SSL証明書の取得

確かSSL証明書って有料だったような、と調べてみると、今は無料の証明書もあるらしい。業界の人たちがHTTPS化を推進しようとしているということか。
無料SSL証明書」と「格安SSL証明書」について考察(Google vs Symantec)
上記の記事を見て、Let’s Encryptという無料SSL証明書を取得することにした。Mozilla財団やCiscoといった大型プレイヤーが参画しているらしい。

「Let’s Encrypt は、無料で利用できる自動化されていてオープンな認証局(CA)です。公共の利益を図る目的で Internet Security Research Group (ISRG) が運営しています」
Let’s Encrypt非公式総合ポータルページより。本家のHPはこちら。)

作業としては上記の非公式総合ポータルページにある手順をほぼそのまま実行した。
Let’s Encryptの使い方

% sudo apt-get install letsencrypt python-letsencrypt-apache

% sudo letsencrypt

これで以下の証明書が作られた。

% ls /etc/letsencrypt/live/(site-name)/
cert.pem  chain.pem  fullchain.pem  privkey.pem

 

Apache2のHTTPS対応設定

以下のサイトを参考に、Apache2をSSL・HTTPS対応にした。
Ubuntu16.04 SSLの設定
なお、Apache2のバージョンは2.4.18だったので、SSLCertificateFileにはfullchain.pemを指定した。SSLCertificateKeyFileにはprivkey.pemを指定。

 

ポート転送設定

最後にこれを忘れてはいけない。(忘れていて、なぜか宅内LANからはアクセスできるのに、しばらく外部からhttpsページにアクセスできない状態だった。。。)
環境によって異なるが、Webブラウザを公開した際に宅内ルータのNAT(ポートマッピング)設定をHTTP用に設定しているはず。例えばポート番号80をサーバマシンのLANアドレスに転送設定する、等である。これをHTTPS用のポート番号についても設定する必要がある。

余談だが、ポート転送設定は自宅サーバの公開時の最初のハードルかもしれないが、慣れれば大丈夫(未だにこうやってつまずいたりする人もいるが、それは個人の資質によるものである)。自宅サーバ、ポート転送あたりのキーワードでGoogle検索すると色々情報は出てくると思われる。
例:ポートフォワーディング – ネットワークエンジニアを目指して

 

上記全ての処理を終えると、https://yjthursday.ddo.jp でアクセスしても問題なくページが表示されるようになった。SSL証明書がちゃんと表示されるのがかっこいい。

参考にしたサイト

※上記の記事中と重複あり。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください