我正在尝试为 Web 服务器(特别是 Splunk)设置证书,但我认为证书的格式不正确。我需要提供私钥文件和 CA 证书的路径。目前,我拥有 PEM 格式的证书(两个文件的内容都以“----BEGIN CERTIFICATE-----”开头)。但这似乎不起作用,我猜测私钥文件需要采用不同的格式。基本上,我希望采用这样的格式:
openssl rsa -in MYFILE -check
成功(目前,失败并显示“无法加载私钥”)。不过,我目前可以使用
openssl x509 -in MYFILE -text -noout
那么我该如何转换文件以便第一个命令能够成功执行呢?
答案1
证书只有公钥,没有私钥。
当它们是 PEM 格式时,有时私钥和证书都位于同一个文件中。查找BEGIN PRIVATE KEY
或BEGIN RSA PRIVATE KEY
标头。如果找到一个,只需使用常规文本编辑器将两个 blob 分开即可。
但如果你有仅有的证书,那么你绝对不能从中得到私钥。证书中只有公钥,而非对称加密的整个安全性取决于无法根据公钥找到私钥。
答案2
听起来你同时拥有 .pem 格式(X509)的私钥和证书,并且需要将该私钥转换为 rsa 私钥格式(RSA)
这里提供了一种方法:
https://stackoverflow.com/questions/17733536/how-do-i-convert-a-private-key-to-an-rsa-private-key