1

皆さん、私は SSL について何か書こうとしていますが、ここに質問があります。

私は以下のものを構築しました:

  • CA 証明書 (自作の CA)
  • Server pfx、Server cert、Server key (自作CAで「localhost」に署名)

現在、.Net SslStream を使用して接続をテストしています:(クライアントとサーバーは別のスレッドにあり、TCP 接続は既に構築されています)

クライアント:

sslStream.AuthenticateAsClient("localhost");

サーバ:

sslStream.AuthenticateAsServer(serverCert); 
//serverCert is X509Certificate2 built from "server.pfx"

クライアントの AuthenticateAsClient メソッドは例外をスローします

「検証手順によると、リモート証明書は無効です。」

その理由は、サーバーの証明書が信頼されていない CA によって署名されているため、認証が失敗したためだと思います。CA 証明書を信頼リストに追加するにはどうすればよいですか?

クライアントコードに以下のコードを追加しようとしましたが、うまくいきません

        X509Store store = new X509Store(StoreName.TrustedPublisher, StoreLocation.CurrentUser);
        store.Open(OpenFlags.ReadWrite);
        store.Add(new X509Certificate2(Resources.CACertPath));
        store.Close();
        sslStream.AuthenticateAsClient("localhost");
4

1 に答える 1