Keytool-使用现有私钥生成X.509格式的公钥

时间:2019-09-27 14:57:09

标签: java rsa saml keytool

我正在尝试生成X.509格式的私钥/公钥对以及需要用于SAML应用程序的自签名证书。

这是我所做的:

  1. here生成自签名证书和私钥并保存 它们以.pem格式。
  2. 使用私钥并生成公钥 使用命令openssl rsa -in key.pem -pubout -out pubkey.pem

当我将这些密钥提供给我的SAML应用程序时,它会错误显示在步骤2中生成的公共密钥,并显示以下消息:

java.io.IOException: Short read of DER length

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

问题

我正在尝试生成X.509格式的私钥/公钥对以及需要用于SAML应用程序的自签名证书。

答案

(1)在Ubuntu 16.04上,我运行以下本机openssl命令以成功为Shibboleth SAML SP应用程序生成X.509格式的私钥/公钥对。

openssl genrsa -out key.pem 2048 -days 365
openssl req -new -key key.pem -out certreq.csr
openssl x509 -req -in certreq.csr -signkey key.pem -out cert.pem

(2)我将Shibboleth SAML SP应用程序生成的公共证书/密钥(即cert.pem)上传到Shibboleth SAML IdP。

(3)我通过Shibboleth SAML IdP和OpenLDAP提供的身份验证成功登录到Shibboleth SAML SP应用程序。

备注

(I)请确保IdP或SP数据库为Type定义了足够的长度,用于存储公共证书/密钥或私钥,例如varchar(2500)。

(II)如果在Windows环境下运行openssl命令,请检查我的答案是否有另一个StackOverflow问题Git status ignore line endings / identical files / windows & linux environment / dropbox / mled,以从私钥和公共证书/密钥的末尾删除“过早的EOF”。

GitHub存储库上的

(III)How to build and run Shibboleth SAML IdP and SP using Docker container提供了有关如何构建和运行Shibboleth SAML IdP和SAML SP测试平台以测试您的SAML SP应用程序的说明。

独立的Shibboleth SAML IdP测试平台可让您检查日志以调试证书问题。