私は、 を使用して Let's Encrypt から証明書を取得および更新するように Synology DSM を設定しましたacme.sh
。
問題は次のとおりです。
- SynologyのVPNセンターパッケージは、変更されるたびにデフォルトの証明書を自動的に取得します。
- OpenVPN クライアントが単純に公開証明書を信頼するようにする方法が見つかりません。
- 証明書は 2 か月ごとに更新されるため、ユーザーに
.ovpn
構成ファイルをこれほど頻繁に更新させることは現実的ではありません。 - 私は Linux に関する必要な専門知識を持っていますが、絶対に必要な場合を除いてベンダーのソフトウェアを変更することは好みません。
ユーザーが Synology DSM 上のこの OpenVPN サーバーに接続できるようにするには、どうすればよいでしょうか?
答え1
そんなことはしないでください。
まず、OpenVPN のマニュアルでは、パブリック CA の使用は推奨されないとされています。OpenVPN は、その CA によって発行されたすべての証明書を信頼します。サードパーティの CA によって発行された証明書の所有者が VPN に接続できるとは考えにくいでしょう。
2 番目に、プライベート サービスにパブリック CA を使用する意味はありません。VPN のおかげで、パブリック CA は見知らぬ人が接続したりサービスを信頼したりすることを期待しないプライベート サービスです。VPN には有効で便利なルート証明書配布ポイントがあり、VPN 構成ファイル (おそらくは組み込まれている) も備えており、いずれにしてもクライアントに配布する必要があります。また、別の証明書ストアもあります。これらすべてにはプライベート VPN が必要です。したがって、CA 証明書を配布するため、パブリック HTTPS に使用する場合と比較して、VPN にプライベート CA を使用することにデメリットはありません。ちなみに、HTTPS でもプライベート CA を有効に使用できます。VPN と同じ場所でクライアント証明書の検証に使用できます。その場合、サーバーにパブリック証明書を使用できますが、クライアント証明書はプライベート CA で署名されます。
3つ目に、Let's Encryptはドメイン検証済みの証明書を発行します。TLS ウェブサーバー目的。OpenVPNを正しく設定すると、サーバーにのみこのような証明書をインストールできます。クライアント証明書には逆の特性が必要です。TLS ウェブクライアント目的。Let's Encrypt はそのような証明書を発行しません。
OpenVPN は、この VPN 専用のプライベートな特別な CA を念頭に置いて設計されています。OpenVPN では、このような CA を作成するためのスクリプト セットが提供されており、EasyRSA と呼ばれています。使い方は非常に簡単です。この CA を使用したくない場合 (正当な理由がある場合)、このプライベート CA を作成するために別のものを使用することもできます。たとえば、私たちはかつてそのために MS AD Certification Services を採用しました。