openSSLの例を実行しようとしています(ソースはここからダウンロードされます)。私はそれを構築し、ポート4433で「wserver」の例を実行することができました(VirtualBoxを使用してUbuntu 12.10仮想マシンで実行)
次に、Windows 8からクライアントを起動しようとしましたがSSL accept error
、サーバーの端末で番組が表示され続けます。
この投稿を見て、受け入れられた回答からbashスクリプトをコピーし、それを使用して、新しいroot.pemおよびその他の証明書を作成できましたが、それでも同じエラーが発生します
(重要かどうかはわかりませんが、VMが何らかの理由で443にバインドできなかったため、ポート4433を使用しています。はい、クライアントでも変更しました)
また、サーバーはCで記述されています。
何か案は?ありがとう!
編集
この行でエラーが発生していることがわかりました
r=SSL_accept(ssl);
を使用してrに返されたエラーを確認しました
SSL_get_error(ssl,r);
そしてそれはSSL_ERROR_SYSCALL
確認したところ
意味ERR_get_error();
が返ってきた0
ret == 0の場合、プロトコルに違反するEOFが観察されました
それが何を意味するのかまだわかりません。
編集2
クライアントのリターンコードを確認しました12045
が、MSDNによるとエラーです。
ERROR_INTERNET_INVALID_CA
12045
この関数は、サーバーの証明書を生成した認証局に精通していません。
ただし、仮想マシンから提供されたクライアントを使用する場合、接続は正常であり、証明書の問題はありません
ここ12045
でMicrosoftによって示されているようにオーバーライドすると、エラーが発生します。12038
ERROR_INTERNET_SEC_CERT_CN_INVALID
SSL certificate common name (host name field) is incorrect. For example, if you entered www.server.com and the common name on the certificate says www.different.com.
これは役に立ちますか?再度、感謝します!