質問編集履歴

2

説明を追記

2022/04/24 18:39

投稿

Shoko
Shoko

スコア9

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
  **詳細状況**
15
15
  PCのVMWare上に作成した環境なので、証明書はいわゆる自己証明書で、OpenSSLの標準のディレクトリ(/etc/pki/配下)には作成せず、別のディレクトリ/etc/test/pki/を作成(/etc/pkiと同じディレクトリ構成)し、crtファイルkeyファイルを各ディレクトリに格納しました。中間証明書はありません。
16
16
  ブラウザからhttps通信ができることは確認済で、phpinfoを表示するphpプログラムもhttps通信で表示できています。
17
-
17
+ stream_socket_client()の利用は、snoopyクラス(ver2.0)を過去に利用したことがあったので、それを利用しています。
18
18
 
19
19
  <試してみたこと1>
20
20
  stream_socket_client()で証明書を無効にしようと思ったのですが、設定方法がよく分かっていない為か、verify_peer、verufy_perr_nameをfalseにしてもエラーを回避できませんでした。

1

説明を追記

2022/04/24 18:36

投稿

Shoko
Shoko

スコア9

test CHANGED
File without changes
test CHANGED
@@ -17,13 +17,14 @@
17
17
 
18
18
 
19
19
  <試してみたこと1>
20
- stream_socket_client()で証明書を無効にしようと思ったのですが、設定方法がよく分かっていない為か、verify_peerをfalseにしてもエラーを回避できませんでした。
20
+ stream_socket_client()で証明書を無効にしようと思ったのですが、設定方法がよく分かっていない為か、verify_peer、verufy_perr_nameをfalseにしてもエラーを回避できませんでした。
21
21
 
22
22
  if ($this->scheme == 'https') {
23
23
  if (isset($this->cafile) || isset($this->capath)) {
24
24
  $context_opts['ssl'] = array(
25
25
  ~~~~ 'verify_peer' => true,~~~~
26
26
  'verify_peer' => false,
27
+ 'verify_peer_name' => false,
27
28
  'CN_match' => $this->host,
28
29
  'disable_compression' => true,
29
30
  );
@@ -37,7 +38,7 @@
37
38
  $context = stream_context_create($context_opts);
38
39
 
39
40
  <試してみたこと2>
40
- エラーメッセージをネットで調べていたところ、phpinfoのopenssl.cafile欄が空白だったのでエラーになっていたという方がおられ確認してみたところ私の環境でもopenssl.cafileが空白でした。
41
+ エラーメッセージをネットで調べていたところ、phpinfoのopenssl.cafile欄が空白だったのでエラーになっていたという方がおられたのを参考に確認したところ私の環境でもopenssl.cafileが空白でした。
41
42
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-25/81c62b88-60c8-4f57-bdab-e49b93c5db21.png)
42
43
  これが原因でそもそもstream_context_create()を実行するための情報が不足し、SSLのエラーになっているかと思い、php.iniで以下の様にcrtファイルを設定。httpdを再起動してみたのですが、phpinfoの内容が変わりません。
43
44
  openssl.cafile=/etc/test/pki/tls/certs/localhost.crt