2017-02-07 9 views
1

私はSSLの基本を理解しようとしています。 (Microsoft Azureクラウドサービスを使用) Azureでは、私はSSL証明書を購入し、それを私のカスタムドメインにバインドしました。うまく動作しているようだ。私の質問は、クライアントからのWEBAPI呼び出しを行う際に、いくつかのドキュメントはちょうどそう...webapiにSSLを追加する...クライアントにも?

​​

のように電話をかけることを教えて...実装に

である。しかし、私はまた私が持って時々見ています電話をかけるプログラムに証明書を追加します。私の質問がある

//You must change the path to point to your .cer file location. 
X509Certificate Cert = X509Certificate.CreateFromCertFile("C:\\mycert.cer"); 
// Handle any certificate errors on the certificate from the server. 
ServicePointManager.CertificatePolicy = new CertPolicy(); 
// You must change the URL to point to your Web server. 
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://YourServer/sample.asp"); 
Request.ClientCertificates.Add(Cert); 
Request.UserAgent = "Client Cert Sample"; 
Request.Method = "GET"; 
HttpWebResponse Response = (HttpWebResponse)Request.GetResponse(); 

、私は単純にHTTPClientにHTTPSを追加する、と私は持ってないとき、実際にクライアントに証明書を追加するには?

+0

要求にクライアント証明書を追加することは、httpsでは必須です。 (*あなたは自己署名証明書を使用している可能性があります。無料です) – Graffito

+0

私はデスクトップクライアントでHttpClientを使用して電話をしています...あなたはこのhttpclient httpresponsemessageに証明書を追加する必要がありますか? – solarissf

+0

いいえ、クライアント証明書は要求用です。サーバー証明書は自動的に応答に返されます。クライアントでは、クライアントのサーバー証明書をチェックするかどうかは自由です。 – Graffito

答えて

0

私の質問は、httpclientにhttpsを追加するだけで、いつ実際のクライアントに証明書を追加する必要がありますか?

これは、クライアント - >サーバーセキュアチャネル(TLS)での呼び出しです。これは誰もが通常行うと、あなたはHTTPSのURLを開いたときにどのブラウザがどのような作品です:

​​

これはクライアントです - もTLS相互認証を行っている安全なチャネル(TLS)を超える>サーバーコールクライアント証明書認証とも呼ばれます)。クライアントが同じクライアントに向けて、サーバのために行く、(証明書、X509Certificate Certを提示することによって)サーバにその身元を証明しなければならない - それゆえ相互

//You must change the path to point to your .cer file location. 
X509Certificate Cert = X509Certificate.CreateFromCertFile("C:\\mycert.cer"); 
// Handle any certificate errors on the certificate from the server. 
ServicePointManager.CertificatePolicy = new CertPolicy(); 
// You must change the URL to point to your Web server. 
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://YourServer"); 
Request.ClientCertificates.Add(Cert); 
Request.UserAgent = "Client Cert Sample"; 
Request.Method = "GET"; 
HttpWebResponse Response = (HttpWebResponse)Request.GetResponse(); 

あなたはを行うには最初のものを使用しますの呼び出しと第2の呼び出し(相互認証)安全で認証されたコール(たとえば、あなたのWebアプリケーションが自分が所有するバックエンドAPIを呼び出す)。

実際には、のようになります。確認済みのIDはですが、ここではワームの缶を開いていますので、そのままにしておきましょう。

+0

だから私はちょうど基本的なSSLをしたい場合は、私は.baseaddressを変更して、それを行う必要がありますか? – solarissf

+0

それは正しいです。 – evilSnobu

+0

素晴らしい...ありがとう! – solarissf

関連する問題