.NET HTTPListener を HTTPS 対応にすることに関して、多くの混乱し、時には矛盾する情報があるようです。私の理解は次のとおりです。
リスナーがこのポートで SSL 要求を処理する必要があることを理解するには、C# コードに
https
プレフィックス (たとえば、 ) が必要です。https://*:8443
実際の SSL ハンドシェイクは内部で行われ、
http.sys
(Windows マシンのどこかに埋め込まれている) によって処理されます。SSL ハンドシェイクは内部で行われるため、C# コードで明示的に SSL ハンドシェイクを管理する必要はありません。マシンに「X.509 信頼できる証明書」が
httpListener
必要であり、何らかの方法でその証明書をポート 8443 にバインドする必要があります (この例では)。
上記の私の理解は正しいですか?そうでない場合は、私を教育してください。
X.509 証明書に関して、私の理解は次のとおりです。
makecert
X.509 証明書の作成に使用します。この証明書は個人用ストアに保存され、信頼できるストアに移動する必要があります (これは、HTTP リスナーが参照する場所です)。を使っcertMgr
て技を出したり、技を出したりできるmmc
ようです。複数の X.509 証明書形式 (DER
、Base64
、pks
、pswd 保護、pks
非公開など) があるようです...使用すべき好ましい形式はありますか?
信頼できるストアに証明書を取得したら、それを TCP ポートにバインドする必要があります。Windows 7 を使用しています。またはを使用する必要がありますhttpcfg
かnetsh
?