2015-05-29 11 views
6

Gần đây, tôi đã phải tăng cường truyền thông SOAP giữa tôi và dịch vụ web. Sau khi tạo tệp khóa cá nhân trên máy chủ của tôi và sau khi CSR được tạo/gửi, tệp chứng chỉ đã được nhận ở định dạng PEM.SOAPUi và kho khóa

Tôi muốn thử nghiệm nó trong SOAPUi nhưng nó vẫn nói rằng Lỗi: Truy cập bị từ chối. Yêu cầu chứng chỉ SSL ứng dụng khách.

đây những gì tôi đã làm:

  • Giấy chứng nhận chuyển đổi

    openssl pkcs12 -export -out **certif.p12** -inkey **myprivatekey.pem** -in **Certificate-received.pem** 
    
  • Keystore nhập khẩu

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

Trong soapUI,

0.123.

tôi đến sở thích và trong SSL Cài đặt Tab,

  • keystore được thiết lập để được pierrejks.jks mật khẩu

  • keystore cung cấp: changeit

  • đòi hỏi khách hàng xác thực đã được chọn.

Mở dự án hiện nay (bấm chuột phải vào thư mục gốc của dự án thì dự án Hiện View), tôi đã đi đến WS-Security Configurations, keystore tab để thêm một nguồn mới.

  • Nguồn là đường dẫn đến pierrejks.jks tập tin
  • Mật khẩu được changeit
  • Defaults Alias ​​được thiết lập để pierrealias
  • Không Bí danh Mật khẩu cung cấp

Sau khi điền những thông tin, trạng thái trở thành ok

Trong Cấu hình WS-Security gửi đi, cấu hình được thêm bằng mã hóa mới WSS-Entry.

  • Cấu hình Tên là pierreconf
  • loại WSS Entry là Encryption
  • Keystore choosen là pierrejks.jks
  • Bí danh là
  • mật khẩu là changeit

Cuối cùng, một yêu cầu được thực hiện với pierreconf hồ sơ WSS Outgoing và đây là Were tôi có lỗi. Tại thời điểm này, nếu tôi hiểu đúng, tab RAW cho thấy rằng nó được mã hóa:

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> 

nhắn Return là

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. 

Làm thế nào để sử dụng SSL là không rõ ràng với tôi vào lúc này.

Tôi chắc chắn tôi đã làm một số sai lầm, ai đó có thể chỉ cho tôi đi đúng hướng?

+0

Bạn cần sử dụng chứng chỉ do dịch vụ web cung cấp. Tạo của riêng bạn và chỉ cần sử dụng nó là một chút như cố gắng để mở khóa xe của bạn với phím sai –

+0

Hi Tim. Cám ơn vì đã chia sẻ. Certificate-received.pem đã được Apple cung cấp để liên hệ với dịch vụ web của họ.Nó đã được tạo sau khi CSR được tạo ra bên cạnh tôi (với tệp khóa riêng của tôi) Tôi đã không tạo tệp mới, nhưng nó đã được chuyển đổi thành PKCS12 vì dường như keytool không thể nhập tệp PEM trực tiếp trong kho khóa. Pierre – Tanc

Trả lời

5

Đã hoàn tất!

Thông tin: Phiên bản soapUI của tôi là 5,0 tôi quyết định không sử dụng một JKS như keystore nhưng tập p12 chỉ

Dưới đây là từng bước những gì tôi đã làm

tạo tập tin pkcs12

Sử dụng tệp privatekey.pem của tôi (được sử dụng để tạo tệp CSR) và certificate.pem đã nhận (Được tạo bởi nhóm thirs đã cung cấp Tệp CSR trước đó)

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

Về câu hỏi:

  • Enter pass phrase for myprivatekey.pem: tôi đã nhập mật khẩu dùng để tạo ra khóa bí mật của tôi.
  • Enter export password: Tenzin
  • Verifying - Enter Export Password: Tenzin

Trong SOAP UI,

Trong sở thích,

  1. certif.p12 được chọn làm kho khóa.
  2. Mật khẩu được cung cấp là tenzin
  3. Yêu cầu xác thực ứng dụng khách được chọn.

Nó hoạt động.

+0

Được rồi! Nó cũng làm việc cho tôi. Lưu ý rằng bạn không phải thêm cài đặt ủy quyền theo yêu cầu, chỉ trong tùy chọn toàn cầu! – MeanGreen

+0

Có vẻ như có vấn đề khi sử dụng nhà cung cấp dịch vụ nhận diện người dùng khóa. Sử dụng PKCS # 12 hoạt động tốt cho tôi. Cảm ơn – 0x0me

Các vấn đề liên quan