2017-03-14 9 views
0

私はSSLアドレスを使用してIPアドレスを取得しようとしています。私はSSL証明書に関する考えを持っていません。ちょっと読んでいます。新しい要件であり、DNSに関連付けられていないIPアドレスを使用する必要があるためです(DNSの代わりにIPアドレスを使用してSSL証明書を取得する方法(.net C#)

)。

は、検索した後、私は、このソリューションが見つかりました:

//Do webrequest to get info on secure site 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(txbURL.Text); 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
request.AllowAutoRedirect = false; 
response.Close(); 

//retrieve the ssl cert and assign it to an X509Certificate object 
X509Certificate cert = request.ServicePoint.Certificate; 

//convert the X509Certificate to an X509Certificate2 object by passing it into the constructor 
X509Certificate2 cert2 = new X509Certificate2(cert); 

//display the cert dialog box 
rtbResult.Text = string.Format("Not Before: {0}\nNot After: {1}", cert2.NotBefore, cert2.NotAfter); 

は、彼らがnotBeforeのと[NotAfter]の日付のみ尋ねたが、あなたはhttp://www.google.comのようなものを使用してではなく、IPを追加した場合取り組んでいます私はそれにIPアドレスを使用することができます知っていますか?

+0

ほとんどのCAは、サブジェクト代替名またはサブジェクトのCN属性のいずれかにIPアドレスを含む証明書の発行を拒否すると考えています。 –

答えて

0

ローカルサーバー(実験的なCAによって署名されていますが、これは問題ではありません)からプライベートIPで発行された証明書を最近正常に取得しましたので、これはバグでもなく、 HttpClientのクラスメソッドを使用しましたが、コードもきれいに見えます)。

本当質問です、あなたがから証明書を引っ張るしようとしているサーバは、IP接続にSSL/TLSをサポートしてはそのIPに割り当てられた有効な(OSのコンテキストで)証明書を持っている場合。現代のほとんどのWebサーバでは、証明書はServer Name Indicationを使用して仮想ホストに実装され、自己署名、信頼できない証明書、無効な(期限切れの)証明書、または全く証明書が返されずSSLネゴシエーションエラーが返されます。

+0

私が見つけたのは、プロトコルに依存する異なるポートを使用することです...私は990(ftps)を使用するUNIX上でそれらのいくつかをテストしましたが、私のC#プログラムからHttpWebRequestクラスで行うと、その値を取得するには...私はどのようなプロトコルを受け入れることができますか? –

関連する問題