使用keytool密钥对加密报错

雪域幽狐 2012-05-04 19:28 阅读:16759


在使用keytool生成密钥对后,获取证书公钥,然后加密时,报错:
java.security.InvalidKeyException: Unsupported key type: Sun DSA Public Key

java.security.InvalidKeyException: No installed provider supports this key: sun.security.provider.DSAPublicKeyImpl

    很疑惑,难道Java自己生成的密钥对都不支持,没道理啊。然后使用OpenSSL生成密钥对后,能正常加密/解密。在查看证书类型时总算发现了差异,OpenSSL的证书实现类是RSAPublicKeyImpl,keytool默认生成的证书是DSAPubllicKeyImpl。
    这个在用keytool生成密钥对时需要指定-keyalg,否则默认采用的是DSA。语法参考如下:
keytool -genkeypair -alias server -validity 3600 -keyalg RSA -keystore server.keystore

0条评论

登陆后可评论