1

SSLに基づいてApache mod_perl Webサービスを構築しました。もちろん、ブラウザからhttpsを使用してWebサービスにアクセスできます(もちろん、自己署名CA証明書をブラウザの信頼リストに追加します)Webサービスにアクセスしますが、 SOAP::Lite を使用して失敗しました。これは私のソースコードです:

$ENV{HTTPS_CERT_FILE} = '/etc/pki/tls/mycerts/client.crt';
$ENV{HTTPS_KEY_FILE}  = '/etc/pki/tls/mycerts/client.key';
#$ENV{HTTPS_CA_FILE} = '/etc/pki/tls/mycerts/ca.crt';
#$ENV{HTTPS_CA_DIR}  = '/etc/pki/tls/mycerts/ca.key';
#$ENV{HTTPS_VERSION} = 3;
$ENV{SSL_ca_file}='/etc/pki/tls/mycerts/ca.crt';
$ENV{SSL_ca_pah}='/etc/pki/tls/mycerts/';
#$ENV{SSL_cert_file}='/etc/pki/tls/mycerts/client.key';
#$ENV{SSL_key_file}='/etc/pki/tls/mycerts/client.crt';
$ENV{PERL_LWP_SSL_CA_FILE}='/etc/pki/tls/mycerts/ca.crt';
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=1;
#$ENV{PERL_LWP_SSL_CA_PATH}='/etc/pki/tls/mycerts/';
use SOAP::Lite;
my $name = "wuchang";
print "\n\nCalling the SOAP Server to say hello\n\n";
print SOAP::Lite
  -> uri('http://localhost/mod_perl_rules1')
  -> proxy('https://localhost/mod_perl_rules1')
  -> result;

私は応答を取得します:

500 Can't connect to localhost:443 (certificate verify failed) at /root/Desktop/test.pl line 18

本当にデバッグできません。証明書の形式が間違っているかどうかわかりません。openssl を使用して、クライアント証明書、サーバー証明書、および自己署名 CA 証明書を含む証明書を生成し、CA にクライアント証明書とサーバー証明書に署名させます。何がうまくいかないのか本当にわかりません/。

4

1 に答える 1