Curl OpenSSL证书创建和pem/cer输出

Curl OpenSSL证书创建和pem/cer输出,curl,https,private-key,public-key,php-openssl,Curl,Https,Private Key,Public Key,Php Openssl,这里有几个类似的问题,但没有一个回答我的问题。我正在尝试获取SSL证书,以便在web服务的HTTPS上运行 首先,我创建了csr openssl req -newkey rsa:2048 -keyout myserver_private.key -out myserver_pkcs10.csr 我的linux机器上有这两个文件 我将csr文件发送给web服务进行签名,他们返回: signingauthority\u Root\u CA.crt,myserver\u pkcs10.csr,他们的

这里有几个类似的问题,但没有一个回答我的问题。我正在尝试获取SSL证书,以便在web服务的HTTPS上运行

首先,我创建了csr

openssl req -newkey rsa:2048 -keyout myserver_private.key -out myserver_pkcs10.csr
我的linux机器上有这两个文件

我将csr文件发送给web服务进行签名,他们返回:

signingauthority\u Root\u CA.crt
myserver\u pkcs10.csr
他们的服务器\u CA.crt

对于我的
curl\u setopt($ch,CURLOPT\u SSLCERT,“?.pem”)我现在需要.pem文件。如何创建此文件以及从哪个文件创建<代码>服务器的CA.crt


我是否还需要使用
curl_setopt($ch,CURLOPT_CAINFO,“?.cer”)如果是,我如何创建这个.cer文件?这是签名机构吗?

用文本编辑器打开
*.crt
文件。如果它们是PEM,则它们将包含以
----开始证书------
----结束证书------
分隔的Base64文本块

如果是这种情况,只需重命名文件即可

如果文件是二进制文件,则为DER。要转换为Base64(PEM),请使用:


查看每个证书的主题和颁发者,以了解您已发送的内容。

这是正确的。在你回答之前我就想出来了,但很高兴知道它基本上是正确的。我将每个文件都转换为DER,然后转换为PEM(这种方式可能并不完全必要)。然后,我将
myserver\u private.key
的内容添加到
myserver\u pkcs10.pem
,在
----BEGIN CERTIFICATE-----
之前,并将文件重命名为
myserver\u full.pem
。当我在
CURLOPT\u SSLCERT
中尝试
myserver\u pkcs10.pem
(不带私钥)时,它抛出了一个错误,因此我认为我还需要添加私钥。
openssl x509 -in <DER filename> -outform PEM -out <PEM filename>
openssl x509 -noout -subject -issuer -in <PEM file>