如何为独立的Wiremock启用HTTPS

时间:2016-10-04 10:49:05

标签: https wiremock

概述:

我使用了wiremock standalone 2.1.11并执行了以下操作来为我的请求启用HTTPS URL但无效:

运行线索的命令如下:

java -jar wiremock-standalone-2.1.11.jar --port 8920 --https-port 8921 --https-keystore /home/wiremock/keystore/clientkeystore --verbose

注意: 我可以通过http端口正确连接

如果有人能帮我找到HTTPS连接的解决方案,我将不胜感激。

2 个答案:

答案 0 :(得分:1)

  1. 为wiremock生成java密钥库

     keytool -genkey -alias wiremock -keyalg RSA -keysize 1024 \
     -validity 365 -keypass password -keystore identity.jks -storepass password
    

    重要---按照提示指定证书详细信息:

    • 名字和姓氏:这不是你的名字,而是公共名称(CN),例如'confluence.example.com'。 CN必须与运行Confluence的服务器的完全限定主机名匹配,否则Tomcat将无法使用SSL证书。
    • 组织单位:这是申请证书的团队或部门,例如“营销”。
    • 组织:这是您的公司名称,例如'SeeSpaceEZ'。 城市,州/省,国家代码:这是您所在的位置,例如悉尼,新南威尔士州,澳大利亚。
  2. 创建自签名证书

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt -config localhost.conf
    
  3. 将认证导入密钥库

     keytool -import -trustcacerts -alias mock -file localhost.crt -keystore identity.jks
    
  4. 使用新密钥库启用wiremock并启用HTTPS

     java -jar wiremock-1.54-standalone.jar --https-port 8443 --https-keystore 
     ./identity.jks
    
  5. 资源:

    答案来自 https://gist.github.com/mobmad/433ba54e9cb97d6d7771#1-generate-self-signed-certificate

答案 1 :(得分:0)

我遇到了这个问题,我想模拟对页面加载期间调用的第三方的https ajax调用。 我们最初的Wiremock设置是在http上完成的,因此出现了错误

JTree tree = new JTree();
for(KeyListener kl: tree.getListeners(KeyListener.class)) {
    tree.removeKeyListener(kl);
}

要解决此问题,我只需要启用Wiremock服务器即可在Secure端口上进行侦听(请参阅代码的粗体部分)。请参见下面的UtilityClass,它会在每次测试之前启动停止WireMock服务器。

 was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint