Sertifika kimlik doğrulamasını ilk defa kullanmam gerekiyor. Ticari bir iş ortağı iki hizmeti, bir XML Web Hizmetini ve bir HTTP hizmetini gösterir. Her ikisine de .NET istemcileriyle erişmem gerekiyor. Ben (kökü ve iki ara üzerine) SSLCACertificates yüklemişSertifika kimlik doğrulaması kullanarak bir web hizmetine ve HTTP arayüzüne erişme
çevre ve benim yerel makinede istemci sertifikası kurma
0. denedi Ne
(7 profesyonel kazanmak) certmgr.exe'yi kullanma. web hizmeti
- için
1.
ben istemci sertifikasını (der) var. - Hizmet, bir .NET proxy'si kullanılarak tüketilecektir. Geçen açıklamada rapor
OrderWSService proxy = new OrderWSService(); string CertFile = "ClientCert_DER.cer"; proxy.ClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate(CertFile)); orderTrackingTO ot = new orderTrackingTO() { order_id = "80", tracking_id = "82", status = stateOrderType.IN_PREPARATION }; resultResponseTO res = proxy.insertOrderTracking(ot);
İstisna:
The request failed with an empty response
İşte kod. HTTP arayüzü
- için
2. ı POST yöntemi ile aramak zorunda HTTPS arayüzüdür.
- HTTPS isteği, HTTPWebRequest kullanarak bir .NET istemcisinden gönderilecektir. Geçen açıklamada rapor
string PostData = "MyPostData"; //setting the request HttpWebRequest req; req = (HttpWebRequest)HttpWebRequest.Create(url); req.UserAgent = "MyUserAgent"; req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate(CertFile, "MyPassword")); //setting the request content byte[] byteArray = Encoding.UTF8.GetBytes(PostData); Stream dataStream = req.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); //obtaining the response WebResponse res = req.GetResponse(); r = new StreamReader(res.GetResponseStream());
İstisna:
The request was aborted: Could not create SSL/TLS secure channel
İşte kod.
3. Son deneme:
Error 107 (net::ERR_SSL_PROTOCOL_ERROR)
Ben şaşırıp: Her iki URL'ler erişmeye çalışırsanız Chrome'da tarayıcı
kullanarak, sertifikalarını yükledikten sonra, bir 107 hatası alıyorum.
U SSL sertifikaları athorization ile http isteklerini yapamazsınız. Https ile yapılması gerekiyor. Bu sertifikaya ihtiyacınız var mı? Cevabınız evet ise, bu web servisini https üzerinden iletmek zorundasınız. – harry180
@ harry180. Açıkladığın için teşekkürler. Soruyu düzenledim. Bir kullanıcı adı ve pasword göndereceğiniz zaman http protokolünde –
, MD5'te en az şifrelenmiş olması gerekir. Bunu yaptığınızda bile, bu bilgiyi yetkisiz kişilere sızdırmak oldukça kolaydır. Bu tür bilgi paylaşımı için https protokolünü tekrar gözden geçirin. – harry180