目前,我正在努力通过空手道DSL通过SSL自动化我们的API,主要问题是,如果不将cert.pfx保留在具有以下配置的某个目录中,就无法实现此API的自动化:
///使用PKCS12文件'certstore.pfx'和密码'certpassword'启用X509证书认证
还有其他加载证书存储区的方法吗?而不是使用certstore.pfx形式的本地目录/ cloud / sftp目录?
我当时正在考虑创建一个KeyStore Java对象(带有链证书和私钥),并将其传递给配置而不是(pfx文件){keyStore:keyStoreObj,keyStorePassword:'xxx'..}或其他一些内存对象,它将提供所有必需的证书/密钥以通过SSL连接。
感谢您的建议!
答案 0 :(得分:1)
谢谢Peter,所以我决定采用这种高级方法,因此决定扩展HttpClient,在这里我覆盖configure(HttpConfig config,ScriptContext context)并决定将以前用证书构造的KeyStore对象传递给该对象,我来自HasiCorp保险柜。
Btw空手道DSL很棒!
答案 1 :(得分:0)
使用Java互操作:https://github.com/intuit/karate#calling-java
例如:您可以采用某种自定义方式来获取所需的证书并将其保存到/tmp
,然后使用file:/tmp/mycert.pfx
加载证书。
由您决定以任何所需的方式实施。如果您想做更高级的事情,请考虑扩展ApacheHttpClient
-并提供有关here的提示。