質問編集履歴
2
説明を追記
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
説明を追記
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欄が空白だったのでエラーになっていた
|
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
|