title: How to verify self-signed certificate in PHP?
body: <p>I want to use self-signed certificate. So I try this:</p>
  
  <pre><code>$context = stream_context_create([
      'ssl' =&gt; [
          'verify_peer' =&gt; true,
          'allow_self_signed' =&gt; true,
          'peer_fingerprint' =&gt; [
              'sha1' =&gt; 'bddad63a826ff53f15ffd4f2339fe573fc01321d',
              'md5' =&gt; 'a7fb0783ffdab99a866ba31e5e15f2e7',
          ],
      ]
  ]);
  
  file_get_contents(
      'https://example.com:8095',
      false,
      $context
  );
  </code></pre>
  
  <p>But anyway I get </p>
  
  <blockquote>
    <p>"SSL operation failed with code 1. OpenSSL Error messages:
    error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate
    verify failed'"</p>
  </blockquote>
  
  <p>What should I do for fix this error? I don't want to turn <code>verify_peer</code> to false, because it's not secure. I just want to check certificate by fingerprint to ensure that I can trust this certificate.</p>