【问题标题】:SOAPUi and keystoreSOAPUi 和密钥库
【发布时间】:2015-08-12 04:11:45
【问题描述】:

最近,我不得不增强我与 Web 服务之间的 SOAP 通信。 在我的服务器上创建私钥文件并创建/发送 CSR 后,收到 PEM 格式的证书文件。

我想在 SOAPUi 中对其进行测试,但它一直说 错误:访问被拒绝。需要客户端 SSL 证书

我做了什么:

  • 证书转换

    openssl pkcs12 -export -out **certif.p12** -inkey **myprivatekey.pem** -in **Certificate-received.pem**
    
  • 密钥库导入

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

在 SOAPUi 中,

我去了首选项SSL设置标签,

  • keystore 被设置为 pierrejks.jks

  • 提供密钥库密码:changeit

  • 要求客户端身份验证已勾选。

现在在项目上(右键单击项目的根目录然后显示项目视图),我转到 WS-Security 配置keystore 选项卡添加新源。

  • Source 是 pierrejks.jks 文件的路径
  • 密码是changeit
  • 默认别名设置为 pierrealias
  • 未提供别名密码

填完这些信息后,status就ok了

Outgoing WS-Security Configurations中,添加了一个带有新WSS-Entry Encryption的配置。

  • 配置名称是 pierreconf
  • WSS 条目类型是加密
  • 选择的密钥库是 pierrejks.jks
  • 别名是 1
  • 密码是changeit

最后,使用 pierreconf 传出 WSS 配置文件发出请求,这是我遇到的错误。 此时,如果我理解正确,RAW 选项卡显示它已加密:

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>

返回消息是

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.

目前我还不清楚如何使用 SSL。

我确定我犯了一些错误,有人可以指出正确的方向吗?

【问题讨论】:

  • 您需要使用网络服务提供的证书。创建你自己的并只是使用它有点像试图用错误的钥匙解锁你的汽车
  • 嗨蒂姆。感谢分享。 Certificate-received.pem 已由 Apple 提供以联系其 Web 服务。它是在我这边生成 CSR 后创建的(使用我的私钥文件)我没有创建新文件,但它已转换为 PKCS12,因为似乎 keytool 无法直接在密钥库中导入 PEM 文件.皮埃尔

标签: ssl openssl certificate soapui pem


【解决方案1】:

完成了!

信息:我的 SOAPUi 版本是 5.0 我决定不使用 JKS 作为密钥库,而只使用 p12 文件

这是我所做的一步一步

PKCS12 文件创建

使用我的 privatekey.pem 文件(用于生成 CSR 文件)和收到的 certificate.pem(由第三方根据之前的 CSR 文件生成)

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

关于问题:

  • Enter pass phrase for myprivatekey.pem:我确实输入了用于生成我的私钥的密码。
  • Enter export password : tenzin
  • Verifying - Enter Export Password : tenzin

在 SOAP 用户界面中

在偏好中,

  1. certif.p12 被选为密钥库。
  2. 给定的密码是 tenzin
  3. 勾选需要客户端身份验证。

有效。

【讨论】:

  • 好的!它也对我有用。请注意,您不必在请求中添加授权设置,只需在全局首选项中!
  • 使用 jks keystores aus 身份提供者似乎有问题。使用 PKCS#12 对我来说很好。谢谢
  • 让它工作。 .cer 不包含私钥。并且 pfx 不起作用。我必须转换为 p12 文件,然后 soapUI 工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-07
  • 2011-09-03
  • 1970-01-01
相关资源
最近更新 更多