2017-08-07 14 views
0

ここにコードを入力してください最初のSSL接続を構築しようとしていますが、エラーコード58の理由を特定できません。私はここで、接続をテストするためにPHPのカールを使用していますcURL 58エラークライアント鍵を読み込めません-8178

は、コードがexecのとき

$port = "443"; 

     $cert = getcwd() . "/controllers/ssl/certificate.pem"; 
     $testxml = "testset/npsLv01.xml"; 

     $headers = array(
      'Content-Type: text/xml; charset="utf-8"', 
      'Content-Length: '.strlen($testxml), 
      'Accept: text/xml', 
      'Cache-Control: no-cache', 
      'Pragma: no-cache', 
      'SOAPAction: "Send"' 
     ); 

     try { 
     $ch = curl_init($testurl); 

     if (FALSE === $ch) 
      throw new Exception('failed to initialize'); 

     //curl opties om ssl verbinding op te zetten 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch, CURLOPT_SSLVERSION, 6); 
     curl_setopt($ch, CURLOPT_SSLCERT, $cert); 
     curl_setopt($ch, CURLOPT_PORT, $port); 


     //post data afhandeling 
     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $testxml); 

     //headers voor het verwerken van de post 
     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

     //timeout settings 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_TIMEOUT, 10); 

     //trying stuff out 
     curl_setopt($ch, CURLOPT_NOBODY, true); 
     curl_setopt($ch, CURLOPT_CERTINFO, true); 
     curl_setopt($ch, CURLOPT_VERBOSE, 1); 

     //exec de request 
     $data = curl_exec($ch); 

     if (FALSE === $data) 
      throw new Exception(curl_error($ch), curl_errno($ch)); 

     } catch(Exception $e) { 

      echo 'error code = '; 
      echo $e->getCode(); 
      echo " error message = "; 
      echo $e->getMessage(); 
      die; 

     } 
     var_dump($data); die; 

を使用している私は次のエラーを取得、このコード: エラーコード= 58のエラーメッセージを=クライアントキーを読み込むことができませんあなたは、クライアントがサーバーに対して自身を認証するために使用する証明書としてこのファイルを設定/controllers/ssl/certificate.pemCURLOPT_SSLCERTを設定することにより-8178

-----BEGIN CERTIFICATE----- 
MIIEwzCCA6ugAwIBAgIDAPQqMA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNVBAYTAlVT 
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMSAwHgYDVQQDExdSYXBpZFNTTCBTSEEy 
NTYgQ0EgLSBHMzAeFw0xNDEyMDcyMTIwNTNaFw0xNzEyMTAwMTUxMTdaMIGYMRMw 
EQYDVQQLEwpHVDE2MDYzMTM0MTEwLwYDVQQLEyhTZWUgd3d3LnJhcGlkc3NsLmNv 
bS9yZXNvdXJjZXMvY3BzIChjKTE0MS8wLQYDVQQLEyZEb21haW4gQ29udHJvbCBW 
YWxpZGF0ZWQgLSBSYXBpZFNTTChSKTEdMBsGA1UEAwwUKi5panNzZWxnZW1lZW50 
ZW4ubmwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDerCdu0VgKjUQL 
PSls9zxw5i3J2k7w2Z537S2giNdLl53SDr2zLmiCQgqVju3G8QyoYA0f1lJV9z8J 
HDI+awmBnj4IM/0GcnMxN7EMdymjAvfcyNu80mCOkaVZAGf0HTHj3ZUNeiu4PxSi 
mdlCHKWhS0DkhuqEnZ2WCa8giTu1F72KyqqKzlo5wLTBlWblRhAZn6ohObSdPTkz 
iXSMmom8fihPiz/ilpQtJxVs7wYXhpQRKw1rlWCeK/EERQUI3YhJh4iJexhP3JCm 
/jLPcFIpCbCHmh4o82vr1oH8g1+T2k9DrvarG9mDf2ueMtCxURdcT6UBB/d2ioDJ 
JKIMSSLPAgMBAAGjggFkMIIBYDAfBgNVHSMEGDAWgBTDnPP800YINLvORn+gfFvz 
4gjLWTBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6Ly9ndi5zeW1j 
ZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly9ndi5zeW1jYi5jb20vZ3YuY3J0MA4G 
A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwMwYD 
VR0RBCwwKoIUKi5panNzZWxnZW1lZW50ZW4ubmyCEmlqc3NlbGdlbWVlbnRlbi5u 
bDArBgNVHR8EJDAiMCCgHqAchhpodHRwOi8vZ3Yuc3ltY2IuY29tL2d2LmNybDAM 
BgNVHRMBAf8EAjAAMEUGA1UdIAQ+MDwwOgYKYIZIAYb4RQEHNjAsMCoGCCsGAQUF 
BwIBFh5odHRwczovL3d3dy5yYXBpZHNzbC5jb20vbGVnYWwwDQYJKoZIhvcNAQEL 
BQADggEBAEZbL3L9VLuhrGSsVkWT6KYEQEj73oofh/+wQRRjVR/yjHniGIiVxZG1 
uQGpHf5G+ap2BxSucLuJNfLcKszS54NTdFNJk4o/N2fsGIRvd1ts+SWg2fdt9BnH 
4hvMBXQCBB2FQDIro3lR7JFWF3KIcCReVog84/JShibTJjwpDRFbkzGsnJ8ERUhv 
4ZQ8HimOQkqIXMS61YxgpwfB+lb77cxu73tON2HMolabgdkpnJ9ixX1O5siI65lp 
3xiHN3o9sJ33V4Q0mBhOBOqAZCvaJ/rY91ESBTIqZYZ4foBHwiYCLTVCvRCjGYjA 
VO/CgSlN0WHRrHw6pxwtf3qcYAp67No= 

-----END CERTIFICATE----- 
-----BEGIN CERTIFICATE----- 

MIIEJTCCAw2gAwIBAgIDAjp3MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT 
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i 
YWwgQ0EwHhcNMTQwODI5MjEzOTMyWhcNMjIwNTIwMjEzOTMyWjBHMQswCQYDVQQG 
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXUmFwaWRTU0wg 
U0hBMjU2IENBIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCv 
VJvZWF0eLFbG1eh/9H0WA//Qi1rkjqfdVC7UBMBdmJyNkA+8EGVf2prWRHzAn7Xp 
SowLBkMEu/SW4ib2YQGRZjEiwzQ0Xz8/kS9EX9zHFLYDn4ZLDqP/oIACg8PTH2lS 
1p1kD8mD5xvEcKyU58Okaiy9uJ5p2L4KjxZjWmhxgHsw3hUEv8zTvz5IBVV6s9cQ 
DAP8m/0Ip4yM26eO8R5j3LMBL3+vV8M8SKeDaCGnL+enP/C1DPz1hNFTvA5yT2AM 
QriYrRmIV9cE7Ie/fodOoyH5U/02mEiN1vi7SPIpyGTRzFRIU4uvt2UevykzKdkp 
YEj4/5G8V1jlNS67abZZAgMBAAGjggEdMIIBGTAfBgNVHSMEGDAWgBTAephojYn7 
qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUw5zz/NNGCDS7zkZ/oHxb8+IIy1kwEgYD 
VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNQYDVR0fBC4wLDAqoCig 
JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMC4GCCsGAQUF 
BwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL2cuc3ltY2QuY29tMEwGA1UdIARF 
MEMwQQYKYIZIAYb4RQEHNjAzMDEGCCsGAQUFBwIBFiVodHRwOi8vd3d3Lmdlb3Ry 
dXN0LmNvbS9yZXNvdXJjZXMvY3BzMA0GCSqGSIb3DQEBCwUAA4IBAQCjWB7GQzKs 
rC+TeLfqrlRARy1+eI1Q9vhmrNZPc9ZE768LzFvB9E+aj0l+YK/CJ8cW8fuTgZCp 
fO9vfm5FlBaEvexJ8cQO9K8EWYOHDyw7l8NaEpt7BDV7o5UzCHuTcSJCs6nZb0+B 
kvwHtnm8hEqddwnxxYny8LScVKoSew26T++TGezvfU5ho452nFnPjJSxhJf3GrkH 
uLLGTxN5279PURt/aQ1RKsHWFf83UTRlUfQevjhq7A6rvz17OQV79PP7GqHQyH5O 
ZI3NjGFVkP46yl0lD/gdo0p0Vk8aVUBwdSWmMy66S6VdU5oNMOGNX2Esr8zvsJmh 
gP8L8mJMcCal 

-----END CERTIFICATE----- 
+0

ピアの検証をオフにしないでください(ほとんどの場合、最初にTLSを使用する点が無効になります)。しかし、そうした場合は、ホスト名のチェックをオフにしたいと思うかもしれません。 –

答えて

1

。この場合、証明書には、サーバーの公開鍵と一致する秘密鍵が付随する必要があります。しかし、そうではないので、エラー「クライアント鍵をロードできません」が表示されます。

質問が証明書ファイルの内容で編集された後、ファイルの目的の誤解があるように見えます。このファイルは2つの証明書で構成されています.2番目の証明書は共通名が*.ijsselgemeenten.nlのサーバーのリーフ証明書で、最初はこの証明書を発行したサブCAの証明書ですRapidSSL SHA256 CA - G3。私の推測では、これらはクライアント証明書として使用すべきではないが、これはクライアントが期待するべきサーバー証明書であるということです。この場合

:サーバーはクライアント証明書とは、認証が

  • 行われるべきではないので、両方の場合
  • CURLOPT_SSLCERTを設定するべきではありません検証する必要がありますので

    • CURLOPT_SSL_VERIFYPEERをfalseに設定するべきではありませんサーバーとローカルCAストアが正しくセットアップされていれば、今すぐ動作するはずです。そうでない場合(つまり、サーバーでサブCAが存在しない場合)、指定ファイルにCURLOPT_CAINFOを設定しようとする可能性があります。
  • +0

    私たちの証明書提供元に連絡すると、2つの新しい証明書が送信されますが、同じ問題のみが残ります。しかし、私はまだ同じ問題を抱えています。私はまた、.crtファイルを試してみましたが、このエラーが出ます( "エラーコード= 77エラーメッセージ= SSL CA証明書の問題(パス?アクセス権?)) – EndLessWave

    +0

    @EndLessWave:あなたがアクセスしようとしているURLを提供して、あなたがアクセスしたURLに関連した証明書がどのようになっているかを知ることができるようにしてください。 –

    関連する問題