私はウェブサイト(www.trailmyx.com)で小規模事業を運営しているウェブサーバーを持っています。最近、私はいくつかの基本的なSSLソケットコード(C++)を開発し始めました。そして、私はOpenSSlに接続し、http GETを行う小さなテストプログラムを書いていました。自分のクライアント以外のポート443(または他のサイト)のwww.google.comに対してクライアントを正常に使用できます。SSLコードがMYウェブサーバーに対してのみ失敗するのはなぜですか?
自分のサーバーに対してSSL_get_verify_result(ssl)を実行しようとすると、X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERTが返されます。
ブラウザ(https://www.trailmyx.com)で自分のWebサイトにアクセスすると、私は証明書を調べることができ、すべてが正常に見えます...自己署名されたものとして表示されません。
同様に、自分のサーバーに対してwgetを使用すると、同じ自己署名証明書エラーが発生します。
どういうわけか私のサイトが誤って設定されていますが、もしそうなら、どのようにブラウザがそれを行うことができますか? OpenSSLのいくつかの他のシーケンスは、ブラウザが作ることを知っていますか?
注:私のサーバーに対するwgetが返されると、証明書からいくつかの情報が出力されます。/C = -/ST = SomeState/L = SomeCity/O = SomeOrganization/OU = SomeOrganizationalUnit)何らかの理由で、特定の状況下で、Apacheが自己署名証明書を返すことを強く疑う... しかし、なぜ?ブラウザはどうしていますか? BTW- CURLはうまく動作します。 the documentationによると
を多分信頼できるCAののブラウザのリストには、OpenSSLを使用しているものとは違うのですか? –
@BrendanLong - もしそうなら、なぜSELF_SIGNED_CERTエラー?より一般的なエラーの代わりに、それは単に認証に失敗しましたか? – dicroce
また、wget https://www.godaddy.com(私のサーバに対して失敗する)はhttps://www.godaddy.com(CAは誰ですか)に対して働きます... – dicroce