2015-05-29 34 views
6

Niedawno musiałem poprawić komunikację SOAP między mną a usługą sieciową. Po utworzeniu pliku klucza prywatnego na moim serwerze i po utworzeniu/wysłaniu CSR otrzymano plik certyfikatu w formacie PEM.SOAPUi i magazyn kluczy

Chcę przetestować go w SOAPUi, ale ciągle powtarza, że ​​Błąd: Dostęp jest zabroniony. Wymagany certyfikat SSL klienta:.

Oto co zrobiłem: konwersja

  • Certyfikat

    openssl pkcs12 -export -out **certif.p12** -inkey **myprivatekey.pem** -in **Certificate-received.pem** 
    
  • import kluczy

    keytool -importkeystore -deststorepass **changeit** -destkeypass **changeit** -destkeystore **pierrejks.jks** -srckeystore **certif.p12** -srcstoretype PKCS12 -srcstorepass **tenzin** -alias 1 
    

W SoapUI,

Poszedłem do preferencji aw Ustawienia SSL zakładce

  • kluczy została ustawiona na pierrejks.jks hasło

  • kluczy przewidziane: changeit

  • wymaga klienta uwierzytelnienie zostało zaznaczone.

nad projektem teraz (prawy przycisk myszy na pierwiastek projektu następnie Pokaż Projekt View), poszedłem do WS-Security Konfiguracje, kluczy zakładka aby dodać nowe źródło.

  • źródłowy jest ścieżką do pierrejks.jks plików
  • Hasło jest changeit
  • Domyślne Alias ​​jest ustawiony na pierrealias
  • Alias ​​Hasło Nie umieszczono

Po wypełnieniu tych informacje, status stał się ok

W wychodzące WS-Security Konfiguracje, konfiguracja dodano nową Encryption WSS-Entry.

  • Nazwa Konfiguracja jest pierreconf
  • typu WSS Wpis zostanie Encryption
  • kluczy WYBRANEGO jest pierrejks.JKS
  • Alias ​​jest
  • hasło jest changeit

Wreszcie, wniosek składa się z pierreconf wychodząca profilu WSS i to gdybym miał ten błąd. W tej chwili, jeśli dobrze rozumiem, zakładka RAW pokazuje, że jest ona szyfrowana:

POST https://gsxapi.apple.com/gsx-ws/services/emea/iphone HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset=UTF-8 
SOAPAction: "urn:authenticate" 
Content-Length: 3047 
Host: gsxapi.apple.com 
Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5) 

    <soapenv:Envelope xmlns:glob="http://gsxws.apple.com/elements/global" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
     <soapenv:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><xenc:EncryptedKey Id="EK-974B3C3F270F85DA2A143289398095719" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"><xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><wsse:SecurityTokenReference><ds:X509Data><ds:X509IssuerSerial><ds:X509IssuerName>C=US,O=Apple Inc.,OU=Certification Authority,CN=Apple Corporate External Authentication CA 1</ds:X509IssuerName><ds:X509SerialNumber>6119460251051586160</ds:X509SerialNumber></ds:X509IssuerSerial></ds:X509Data></wsse:SecurityTokenReference></ds:KeyInfo><xenc:CipherData><xenc:CipherValue>yWIQ5aWqy50ba/kaw3mLYyvpBL8S+mcQnkZri8q6deJXoNFZm+TGOry9ds5VCbsYzpgjAYGFRZxnEfnAirFDqojUgbthc6E/YeG15y1GShiBZrBB3U5KVk6ZIqRaOAVSBMCG5DXosFDz0I/MrToMA8MvX5A26pgp6siM6fhfVRLfFPDCJQOQJw3gr2G3IUnu0t4jf2BIs4FPObtOZSN1ou+w3ny2meL2F0VhT2UPDbZ46EKwHiY7Az9RVt0MocWRRQSR9FU4h6zqziWbUC95OrzrKXrbo01La8UDZ4mykQXqg==</xenc:CipherValue></xenc:CipherData><xenc:ReferenceList><xenc:DataReference URI="#ED-974B3C3F270F85DA2A143289398095720"/></xenc:ReferenceList></xenc:EncryptedKey></wsse:Security></soapenv:Header> 
     <soapenv:Body><xenc:EncryptedData Id="ED-974B3C3F270F85DA2A143289398095720" Type="http://www.w3.org/2001/04/xmlenc#Content" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"><xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/><ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"><wsse:SecurityTokenReference wsse11:TokenType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsse11="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd"><wsse:Reference URI="#EK-974B3C3F270F85DA2A143289398095719"/></wsse:SecurityTokenReference></ds:KeyInfo><xenc:CipherData><xenc:CipherValue>cYyhZSw7/XR9Gtj7+lzkwwilTlpuAHVYdT+v8WeofYo48j8K0CReBIdeUI3pfWQ+cEj1D+VQO1k7e6fCsDuK7vZfrCG2qrYDlJmChnDrR7Tr5QSpC/ES3ohnYFqRrNnaOAhgjrqtDevww/S0dUKxmAFEbY18rvbF+l1T32da53zo1b9mN+sD9oKdWq7w+1eJHZOpJ4WQuMcdHp9DqAxizu4nc4FX65myZieI2qoWTzKGqeNMbqqyFFVpQ0iqI+7sT5Rh9Qc/Sw9pZMHxx3x856+PH/4PExTj/00f7rzhy6MhxEFavHksBraeGU6Ctd+xRMaA4Y/ZXGytf6M9C5j0v2SDqAFtwtj9Sky2uRzsXlNwmjinI29SsGAcOOBvyB7+Ff8rSATR3snMgvuNN3l0GsLDP1tzqz7vhHkCeKtsRCC8xtOqsZsz9QEmB31Gz3QMilsmsyhjdZ5QUsc+VU/HJhON2pzk7xL+V8zupc/uDoeg9AS38lti2nid5WDLAdG8j1IAU7ox/tJnAs7NTti9XN2nTcHf9u7laQfEm7i4VaLkn6hHsXf7JTE5GBkTF2sbR0cpSnIi2fYbHlU6EIugTgwU0875enhRQiyHhb84QByTfxig0bXaMCMnHDkdjH41+HoKu5SGxoPOyKp/JDpQaPY3J56RFrp0j8tRlqpUYIU=</xenc:CipherValue></xenc:CipherData></xenc:EncryptedData></soapenv:Body> 
    </soapenv:Envelope> 

wiadomość Return to

HTTP/1.1 401 Access Denied 
Connection: close 
Content-Length: 57 
Content-Type: text/html 
Cache-Control: no-cache,no-store 
Pragma: no-cache 

Error: Access is Denied. Client SSL Certificate Required. 

Jak korzystać z protokołu SSL nie jest dla mnie jasne w tej chwili.

Jestem pewien, że popełniłem błędy, czy ktoś może wskazać mi właściwy kierunek?

+0

Należy użyć certyfikatu dostarczonego przez usługę internetową. Tworzenie własnego i używanie go to trochę jak próba odblokowania samochodu za pomocą niewłaściwego klawisza –

+0

Cześć Tim. Dziękuję za udostępnienie. Certyfikat-received.pem został dostarczony przez firmę Apple w celu skontaktowania się z jego serwisem.Został utworzony po wygenerowaniu CSR na mojej stronie (z moim plikiem klucza prywatnego) Nie utworzyłem nowego pliku, ale został on przekonwertowany do PKCS12, ponieważ wydaje się, że keytool nie może zaimportować pliku PEM bezpośrednio w magazyn kluczy. Pierre – Tanc

Odpowiedz

5

Zrobione!

Info: Moja wersja SoapUI wynosi 5,0 postanowiłem nie używać JKS jako kluczy, ale plik p12 tylko

Oto krok po kroku, co zrobiłem

tworzenie pliku PKCS12

Korzystanie z mojego pliku privatekey.pem (używanego do generowania pliku CSR) i pliku certificate.pem otrzymanego (Wygenerowane przez stronę thirs z poprzednim plikiem CSR)

openssl pkcs12 -export -out certif.p12 -inkey myprivatekey.pem -in Certificate-received.pem 

Na pytanie:

  • Enter pass phrase for myprivatekey.pem: Zrobiłem wpisać hasło używane do generowania mój klucz prywatny.
  • Enter export password: Tenzin
  • Verifying - Enter Export Password: Tenzin

W SOAP UI,

W preferencjach,

  1. certif.p12 został wybrany jako magazyn kluczy.
  2. Podane hasło to tenzin
  3. Wymaga uwierzytelnienia klienta.

Działa.

+0

W porządku! Działa również dla mnie. Pamiętaj, że nie musisz dodawać ustawień autoryzacji do żądania, tylko w globalnych preferencjach! – MeanGreen

+0

Wygląda na to, że problem polega na korzystaniu z dostawcy tożsamości jk keystores aus. Używanie PKCS # 12 działa dobrze dla mojego. Dzięki – 0x0me