LAN内のWebページに自己署名証明書でHTTPS接続を可能にする
最近のNASはLAN内に簡単にWebページを設置できる
Synology NASは非常に高機能で、自宅Webサーバーを簡単に設置することもできます。うちのSynology NASはファイルフォルダーとして使用しているほか、自宅WebサーバーとしてApache 2.4+PHP 7.4を稼働させて業務で使用する自分用のPukiwikiを設置しています(インターネットには公開せずLAN内のみからアクセス可能)。また、そのSynology NAS上でVPN serverを稼働させてOpen VPNで外部からLAN内にアクセスできるようにしています。こうすることで、VPN接続した端末では自宅外からもLAN内のPukiwikiにアクセスすることができるようになっているのです。
さて、Synology NAS上のApache 2.4で公開したウェブページはHTTPSを用いた暗号化通信を利用することができますが、この場合の証明書の設定がちょっとややこしいという問題があります。近頃のレンタルサーバーの場合であれば、独自ドメインを使ったサイトでもLet's encryptの証明書を使ったSSL通信が無料で利用できますので、ドメイン利用料のみでHTTPSを使ったウェブサイトを構築できます。しかし自宅Webサーバーで独自ドメインに対して発行したLet's encryptのSSL証明書を使うのは若干手間がかかります。
![27eda7b291_url.png](img/27eda7b291_url.png)
さらにうちのLAN内のPukiwikiは独自ドメインですらなく生のローカルIPアドレス 192.168.XXX.XXX というURL上においてあります。192.168.〜に対してLet's encryptの証明書を発行することはできません。となると、192.168.XXX.XXX でHTTPS通信を行うには自己署名証明書(いわゆるオレオレ証明書)を使うしかなさそうです。
自己署名証明書(オレオレ証明書)で証明書の信頼性エラーの警告を表示しないようにする
Synologyのウェブサイトにオレオレ証明書でHTTPS接続するときに証明書の信頼性エラーの警告を表示しないようにします。
証明書の発行
まずDiskStationで証明書を発行します。
「コントロールパネル→セキュリティ→証明書」と進み、「追加」を選んで証明書を作成する画面に進みます。
![27eda7b291_0.png](img/27eda7b291_0.png)
![27eda7b291_1.png](img/27eda7b291_1.png)
どうせLAN内でしか使用しない自己署名証明書なので会社名などはテキトーでかまわないと思います。
![27eda7b291_3.png](img/27eda7b291_3.png)
![27eda7b291_7.png](img/27eda7b291_7.png)
証明書が完成したら下記のような証明書一覧の中にさきほど作成した証明書が配置されているはずです。
![27eda7b291_4.png](img/27eda7b291_4.png)
証明書が作成できたら、「追加」タブの中から「証明書をエクスポート」を選択します。zip ファイルでダウンロードできるので、これを解凍します。中には以下のような4つのファイルが含まれているはずです。なお拡張子は古いバージョンのディスクステーションの場合は若干異なる可能性があります。
![27eda7b291.png](img/27eda7b291.png)
- cert.pem
- privkey.pem
- syno-ca-cert.pem ←これをインストール
- syno-ca-privkey.pem
上記の4つのファイルが生成されます。このうちsyno-ca-cert.pemをMacにインストールしておきます。
MacやWindowsに証明書をインストールする
ダブルクリックするか、またはキーチェーンアクセスにドラッグドロップで簡単にインストールができます。Windowsの場合は右クリックでインストールできます。
Firefoxに証明書をインストールする
Firefoxの場合はMacやWindowsなどのOSに証明書をインストールしただけではエラー表示が消えてくれません。ブラウザに証明書をインストールする必要があります。
![27eda7b291_ff.png](img/27eda7b291_ff.png)
Firefoxの設定画面から「セキュリティ→証明書→証明書を表示」へと進みます。
さらに「証明書マネージャー」が表示されたらその中から「認証局証明書」のタブをクリックし、「読み込む」からsyno-ca-cert.pemを読み込みます。これでブラウザを再起動するとFirefoxでその証明書が有効になります。
iPhoneに証明書をインストールする
iPhoneに証明書をプロファイルとしてインストールする
先ほどのsyno-ca-cert.pemファイルをAirDropなどでiPhoneに転送してあげましょう。するとiPhone側で「設定→一般」からプロファイルのインストール画面に進めるので、そのままインストールしてあげます。
![ルート証明書を登録する(iPhone/Safari) | 【カオナビ】サポートサイト](cache/ogp/fa8747af2248b7b7d4a921a12d663c4a.jpg)
iOS 13以降ではプロファイルをインストールしただけではSafariの証明書エラーの警告表示は消えません。インストールしたプロファイルの証明書を「証明書信頼設定」で全面的に信頼するという設定をしてあげる必要があります。
iOS 13では、Safari以外のブラウザ(iOS版chromeなど)では証明書のインストールはできないようです。
証明書信頼設定
設定画面から「設定→一般→情報→証明書信頼設定」の順に進んで、「ルート証明書を全面的に信頼する」で、証明書に対する信頼を有効にします。詳しくは下記のサイトに解説があります。
![iOS や iPadOS で手動でインストールした証明書プロファイルを信頼する](cache/ogp/23c0bd2bc54818dce60297fe906a0ab3.png)
これで、FirefoxからアクセスしてもiPhoneのSafariからアクセスしても、ちゃんとSSLの南京錠のマークが表示されますが、Safari以外では初回アクセス時には危険なサイトであるという警告が出てしまいます。
オレオレ証明書はどこで使っても良いわけではない
上記の方法で自己署名証明書(オレオレ証明書)を使って自宅Webサーバーに設置したサイトとHTTPSで接続することができるようになりましたが、オレオレ証明書はインターネットの何処で使っても安心できるものではありません。むしろ広いインターネットでは安易に使用せず、LAN内(VPN内を含む)での使用にとどめておくべきでしょう。この問題については下記のサイトが参考になります。
![オレオレ証明書を使いたがる人を例を用いて説得する - Qiita](cache/ogp/1b5434d09b13b365ef75a6bab310f903.png)
![ローカルドメインのSSL証明書はどうするのが良いか - designetwork](cache/ogp/5e9fc0ed67655417212cb99cc50490dc.jpg)
この記事に対するコメント
このページには、まだコメントはありません。
更新日:2021-05-01 閲覧数:4103 views.