经过实验证明WebServices WS-Security的实现,在多语言之间的障碍在于密钥的形式。
Java语系中,公钥私钥保存在JKS密钥库或PKCS12密钥库中,JKS还是PKCS12?
C或其他语系中,多以PEM为存放形式。
----------------------------------------------------------------------
以我的一个实际案例来说:WebServices服务端采用xfire1.2.6 客户端采用AXIS2C,签名证书由服务端签发
服务端采用JKS作为密钥库。
服务端采用PKCS12存放产生的客户端密钥,将PKCS12导出为PEM,公钥部分拷贝出来新建一份文件,通过keytool导入服务器端JKS密钥库。
服务端将PEM授予客户端,客户端将PEM中私钥、公钥分别存放。即可通过AXIS2C调用。
所以最为关键的就是产生客户端密钥的时候要使用PKCS12,keytool已经可以通过-storetype pkcs12来制作了。