相关疑难解决方法(0)

OpenSSL:PEM例程:PEM_read_bio:无起始行:pem_lib.c:703:期望:TRUSTED CERTIFICATE

我需要一个用于在Stunnel的CApath目录中发布的文件的哈希名称.我在这个目录中有一些证书,他们运作良好.我还有一个服务器sert和服务器密钥:

cert = c:\Program Files (x86)\stunnel\server_cert.pem 
key = c:\Program> Files (x86)\stunnel\private\server_key.pem
Run Code Online (Sandbox Code Playgroud)

当我尝试计算新证书的哈希时,我收到一个错误:

/ etc/pki/tls/misc/c_hash cert.pem

无法加载证书140603809879880:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:pem_lib.c:703:期望:TRUSTED CERTIFICATE

据我所知,我必须签署我的证书,但我不明白我该怎么做.请提供解决方案.

PS:

消息

无法加载证书140603809879880:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:pem_lib.c:703:期望:TRUSTED CERTIFICATE:

当我为cert.pem制作c_hash时发布这不是server_cert.pem,这是Root_CA,它的内容类似于

----- BEGIN CERTIFICATE -----
... 6UXBNSDVg5rSx60 = ..

-----结束证书-----

当我写作

openssl x509 -noout -text -in cert.pem

在控制台面板中,我看到这个信息:

/etc/pki/tls/misc/c_hash cert.pem

unable to load certificate 140603809879880:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
Run Code Online (Sandbox Code Playgroud)

windows openssl certificate trusted

94
推荐指数
7
解决办法
35万
查看次数

使用PHP将.PEM和.KEY作为字符串传递给Curl

我有一个CERT和私钥文件.我正在使用cUrl和PHP连接到另一个服务.目前,我已经证明并输入了文件,并且使用以下代码完全正常:

$pemfile = "cert.pem";
$keyfile = "private_key.key";
$url = "someTestUrl";
$requestXml = "requestData";

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_VERBOSE, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); 
curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
curl_setopt($ch, CURLOPT_SSLCERT, $pemfile); 
curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM'); 
curl_setopt($ch, CURLOPT_SSLKEY, $keyfile); 
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXml);
$ret = curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)

我的问题是:我可以将cert和key作为字符串传递而不是将它们作为文件传递吗?我试过简单地将各个文件的内容作为字符串传递:

$pemfile = "-----BEGIN CERTIFICATE-----CERTDATAASSTRING-----END CERTIFICATE-----";
$keyfile = "-----BEGIN RSA PRIVATE KEY-----PRIVATEKEYINCODE-----END RSA PRIVATE KEY-----";
Run Code Online (Sandbox Code Playgroud)

......并且不用说......它不起作用:(

有任何想法吗?指针?建议???

php ssl https curl ssl-certificate

17
推荐指数
2
解决办法
2万
查看次数

标签 统计

certificate ×1

curl ×1

https ×1

openssl ×1

php ×1

ssl ×1

ssl-certificate ×1

trusted ×1

windows ×1