这里有一些类似的问题,但没有一个回答我的情况。我正在尝试通过HTTPS为Web服务获取SSL证书。
首先,我创建了csr
openssl req -newkey rsa:2048 -keyout myserver_private.key -out myserver_pkcs10.csr
我的linux盒子上有这两个文件。
我发送的csr文件由Web服务签名,然后发回:
signingauthority_Root_CA.crt
,myserver_pkcs10.csr
,theirserver_CA.crt
对于我的curl_setopt($ch, CURLOPT_SSLCERT, "?.pem");
我现在需要.pem文件。如何创建此文件以及从哪个文件创建? theirserver_CA.crt
?
我是否还需要使用curl_setopt($ch, CURLOPT_CAINFO, "?.cer");
,如果是,我该如何创建此.cer文件?这是中介还是签署机构吗?
答案 0 :(得分:1)
使用文本编辑器打开*.crt
个文件。如果它们是PEM,则它们将包含由-----BEGIN CERTIFICATE-----
和-----END CERTIFICATE-----
分隔的Base64文本块。
如果是这种情况,只需重命名该文件即可。
如果文件是二进制文件,则为DER。要转换为Base64(PEM),请使用:
openssl x509 -in <DER filename> -outform PEM -out <PEM filename>
CURLOPT_CAINFO
将为theirserver_CA.crt
我认为CA也会发回myserver.crt
,这将用于CURLOPT_SSLCERT
。
使用:
openssl x509 -noout -subject -issuer -in <PEM file>
查看每个证书的主题和发行人,以便计算出您已发送的内容。