Tagi na forum.

Windows 14206 SQL Server 2132
sieci 6796 Windows XP 1922
SQL 6578 Outlook 1838
SBS 3868 Uprawnienia 1777
Windows 2003 2781 IIS 1636
Windows Server 2588 Office 1516
DNS 2315 Skrypt 1499

pokaż wszystkie tagi na forum

SOAP & SSL

DarkStar 2005-02-01 13:36:05
0
avatar
 
 
Czy żeby uruchomić komunikację za pośrednictwem protokołu SOAP z obsługą SSL (chodzi mi o połączenia HTTPS) trzeba coś specjalnie konfigurować?

Używam WSDL Generator z Microsoft SOAP Toolkit 3.0.

Na razie próba podpięcia się pod taką stronkę kończy się wyjątkiem z błędem

WSDLReader:XML Parser failed at linenumber 0, lineposition 0, reason is: Wystąpił problem zabezpieczeń.

Dodam, iż witryna posiada klucze niezaufane, wygenerowane za pomocą SelfSSL z pakietu IIS 6.0 Resource Kit Tools.
tagi: IIS   SSL   WSDL


DarkStar  2005-02-01 14:24:43 #1
0
avatar
 
 
Wygląda na to, że SOAP ma wbudowaną obsługę SSL. Problem rozwiązałem. Nie będę opisywał sposobu, bo już mi się znudziła dyskusja z sobą samym. Niniejszym znowu dziękuję sobie za pomoc. 8-)

alu  2005-02-01 15:50:56 #1.1
0
avatar
 
 
Niech się kolega nie obraża :p Widocznie za szybko pytasz innych o pomoc, jeżeli sam znajdujesz rozwiązanie w godzinę. Nie każdy może odwiedzać to forum w dzień tak często :) codingDotNet

sg_mt  2005-02-01 20:44:53 #1.1.1
0
avatar
 
 
A poza tym inni pewnie również byliby ciekawi w jaki sposób zostało to rozwiązane.. A nuż - widelec - przyjdzie im kiedyś spotkać sięz tym problemem? Pozdrawiam
Jacek Segit

-- Pozdrawiam, Jacek Segit
DarkStar  2005-02-01 20:55:07 #1.1.1.1
0
avatar
 
 
A poza tym inni pewnie również byliby ciekawi w jaki sposób zostało to rozwiązane.. A nuż - widelec - przyjdzie im kiedyś spotkać sięz tym problemem?

Wówczas wejdą na forum, zadzadzą sobie pytanie, po czym udzielą odpowiedzi i podziękują. :D

To już nie pierwszy problem, który rozwiązałem w ten sposób. Rzeczywiście szybko znalazłem rozwiązanie. Po prostu mam coś pilnego do zrobienia (szef pyta kilka razy w ciągu dnia), więc zaczynam walkę, jak mam problem, który zatrzymuje mnie na minimum kilkadziesiąt minut, to walę na forum, a w między czasie ciągle główkuję... I przeważnie znajduję rozwiązanie, zanim mi ktokolwiek odpowie. :p

Żeby mi to było przedostatni raz!

W tym konkretnym przypadku chodziło właśnie o to, co podejrzewałem. Czyli niezaufany certyfikat serwera. Należy zwrócić uwagę na to, żeby miał on poprawną nazwę (zgodną z domeną) i aktualną datę ważności. Następnie dopisać go do magazynu certyfikatów (lepiej nie osobistego).

Przeglądarka napotykając taki certyfikat i nieufnie ;) do niego podchodząc, wyświetla odpowiedni monit. Ale SOAP nam tego nie zrobi, tylko od razu wywali się zgłaszając w/w błąd. Po zarejesterowaniu zaufanego Urzędu Certyfikacji i zabezpieczeniu witryny z WSDLem odpowiednim certyfikatem wydanym przez ten urząd możemy cieszyć się w pełni sprawnym transportem przez SOAP ze 128o bitowym SSL. :)

U mnie był problem nawet po dodaniu Urzędu Certyfikacji, co zmyliło mnie na pewien czas - nie zauważyłem, że klucz miał właśnie nazwę nieodpowiadającą domenie. Nie wiedziałem wtedy, że to jest istotne.

sg_mt  2005-02-01 23:44:06 #1.1.1.1.1
0
avatar
 
 
Żeby mi to było przedostatni raz!

:) no niestety chyba nikt tutaj nie udziela informacji/porad zawodowo

A co do certyfikatów:
Użerałem się z Opensslem "trochę", z wielu rzeczy musiałem zrezygnować ze względu na nieosiągnięcie odpowiednich rezultatów :-|
Serwer certyfikatów na windows 2003 ma tę przewagę, że znacznie łatwiej jest "skombinować" certyfikaty użytkownika. Korzystanie z czegoś takiego w openssl i tworzenie "własnego" systemu weryfikacji od zera to droga przez mękę - zrezygnowałem z marnowania nad tym czasu do czasu, aż zostanie zakupiony jakis sensowny serverowy system operacyjny :), który "to" będzie mieć "wbudowane". Pozdrawiam
Jacek Segit

-- Pozdrawiam, Jacek Segit
marcinobel  2005-02-03 10:23:08 #1.1.1.1.2
0
avatar
 
 
Sposób z rejestracją niezaufanego certyfikatu w bazie Windowsa nie jest najlepszym rozwiązaniem. Co jeżeli będziemy chcieli wywołać Web Service po SSLu a na serwerze nie będziemy mogli zmienić certyfikatu a ten który będzie nie będzie miał odpowiedniej nazwy domeny?

Jest na to proste rozwiązanie. Trzeba utworzyć własną klasę, która będzie odpowiedzialna za weryfikację certyfikatów SSL i dodać w odpowiednie miejsce.

Własna klasa:

using System;
using System.Net;
using System.Security.Cryptography.X509Certificates;

namespace Administrator.Export
{
/// <summary>
/// Klasa definiująca politykę zaufania wobec certyfikatów SSL
/// </summary>
public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy
{

/// <summary>
/// Konstruktor domyślny.
/// </summary>
public TrustAllCertificatePolicy() {}

/// <summary>
/// Metoda sprawdzająca poprawność certyfikatu.
/// </summary>
/// <param name="sp"></param>
/// <param name="cert">Certyfikat.</param>
/// <param name="req"></param>
/// <param name="problem"></param>
/// <returns>Zwraca true jeżeli certyfikat jest poprawny, w przeciwnym przypadku false.</returns>
/// <remarks>Na potrzeby tego programu ta metoda zawsze zwraca true.</remarks>
public bool CheckValidationResult(ServicePoint sp, X509Certificate cert,
WebRequest req, int problem)
{
return true;
}
}
}
A naszą klasę należy dodać w odpowiednie miejsce tak :) :

// Zmiana polityki związanej z certyfikatami
// Wszystkie certyfikaty mają być uważane za poprawne.
ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();

Pozdrawiam
Marcin Obel Myślenia toku nie prowokuj... see http://www.ondotnet.pl

DarkStar  2005-02-03 14:04:21 #1.1.1.1.2.1
0
avatar
 
 
Tyle że ja programuję w Delphi, w dodatku w wersji 7.0, która ma się tak do .NETu, jak piernik do wiatraka. :D Ale dzięki za kod, myślę, że bardzo mi się przyda w innym projekcie, realizowanym w ASP.NET, gdzie na etapie końcowym również będę musiał włączyć szyfrowanie.

marcinobel  2005-02-03 14:53:01 #1.1.1.1.2.1.1
0
avatar
 
 
No tak ... w Delphi 7 rzeczywiście za bardzo Ci sie nie przyda :D

Pozdrawiam
Marcin Obel Myślenia toku nie prowokuj... see http://www.ondotnet.pl

Udziel odpowiedzi

avatar
Treść wpisu:

Zaloguj się lub Zarejestruj się aby wykonać tę czynność.

Idź na górę strony