OpenSSL证书创建和pem / cer输出

时间:2017-10-24 23:17:31

标签: curl https private-key public-key php-openssl

这里有一些类似的问题,但没有一个回答我的情况。我正在尝试通过HTTPS为Web服务获取SSL证书。

首先,我创建了csr

openssl req -newkey rsa:2048 -keyout myserver_private.key -out myserver_pkcs10.csr

我的linux盒子上有这两个文件。

我发送的csr文件由Web服务签名,然后发回:

signingauthority_Root_CA.crtmyserver_pkcs10.csrtheirserver_CA.crt

对于我的curl_setopt($ch, CURLOPT_SSLCERT, "?.pem");我现在需要.pem文件。如何创建此文件以及从哪个文件创建? theirserver_CA.crt

我是否还需要使用curl_setopt($ch, CURLOPT_CAINFO, "?.cer");,如果是,我该如何创建此.cer文件?这是中介还是签署机构吗?

1 个答案:

答案 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>

查看每个证书的主题和发行人,以便计算出您已发送的内容。