title: How to solve the error "could not load PEM client certificate, OpenSSL error:02001003:system library:fopen:No such process"?
body: <p>Excuse me if the question is silly, but I'm a novice in this area.
  I need to connect to a service via SSL from a Drupal 7 site. I have a file with a ".p12" extension and a password for it. Also, I use PHP 7.1 1 and Windows 7 64x.
  I converted .p12-file into .pem-file using the following command.</p>
  
  <pre><code>openssl pkcs12 -in myfile.p12 -out myfile.pem 
  </code></pre>
  
  <p>Before I installed Openssl into my computer and added paths into Windows.
  After it I'm trying to use the following code for connecting to the server using CURL functions.</p>
  
  <pre><code>$ch = curl_init();
  
  curl_setopt($ch, CURLOPT_URL, 'my_addr');
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
  curl_setopt($ch, CURLOPT_SSLCERT, 'myfile.pem');
  curl_setopt($ch, CURLOPT_SSLCERTPASSWD, 'mypsw');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  
  $result = curl_exec($ch);
  
  if ($result === FALSE){
    $curl_error = curl_error($ch);
  }
  curl_close($ch);
  </code></pre>
  
  <p>Unfortunately, curl_exec returns FALSE and curl_error returns the following:</p>
  
  <pre><code>could not load PEM client certificate, OpenSSL error error:02001003:system library:fopen:No such process, (no key found, wrong pass phrase, or wrong file format?)
  </code></pre>
  
  <p>I decide to execute this code on the client's site which is on a Linux shared hosting, whereas my localhost works on Windows 7 64x. The code is executed without any errors, but curl_exec returns a void string.  </p>
  
  <p>I want to clarify, what am I doing wrong and why PEM client certificate doesn't want to load? What should I do on my localhost to solve this problem? 
  I can't give up using Windows 7 and start using Linux instead it.</p>