在使用WSO2 IS这个软件时,如果你把这个这软部署在其他服务器而不是本地的话,再调用其服务时会出现以下错误。
Certificate for <WSO2_IP> doesn't match common name of the certificate subject: localhost
意思时,wso2的证书只支持localhost则个域名,不支持那个IP。
那么要做的,就是把这个IP也加入进去了。
1.进入WSO2 IS的目录 WSO2IS_HOME\repository\resources\security
会看到wso2carbon.jks这个文件,这是它默认的密钥库。
在本目录打开cmd,输入以下命令:
keytool -genkey -alias wso2carbon2 -keyalg RSA -keysize 2048 -keystore wso2carbon.jks -dname "CN=192.168.3.235,OU=ZDYS,O=ZDYS,L=HZ,S=ZJ,C=CN"-storepass wso2carbon -keypass wso2carbon
如此,就把一个别名为wso2carbon2的密钥加入了默认密钥库,其中的CN,就是域名,其他的都是什么组织名,地名什么的,无所谓。
2.进入WSO2 IS的目录 WSO2IS_HOME\repository\conf
打开文件deployment.toml,添加以下代码:
[keystore.tls]
alias= "wso2carbon2"
目的是为了把wso2carbon2这个新创建的密钥也加入到主密钥中去。
3.重启WSO2 IS,进入它的网页。
进入我目录keystore/list,看到默认的密钥库,点击view。
会看到wso2carbon2,这个密钥已经添加进去了。
4.把新的密钥添加到调用方服务的java的ca中去就行了。
可以参考文章https://blog.youkuaiyun.com/Valhalla6416/article/details/103156780
注意新的密钥别名是wso2carbon2