Мне нужно написать программку, которая слушает SSL socket и отвечает на запросы. Я ее пишу на перле. Использую модуль IO::Socket::SSL. Чтобы с этим работать надо создать ключ и сертификат в openssl. Private or public - не знаю, тк с SSL никогда не сталкивался. Объясните, пожалуйста, какие нужны ключи. А заодно посмотрите, что я неправильно написал в этом сокет-сервере.#!/usr/local/bin/perl -wT
use IO::Socket::SSL;
use strict;
$IO::Socket::SSL::DEBUG = 1;
my $sock; # new object handler
my $s; # accept() handler
my $openssl_path = '/usr/local/openssl';
my $cert_path = $openssl_path . '/certs';
my $key_file = $cert_path . '/server-key.pem';
my $cert_file = $cert_path . '/server-cert.csr';
# Create new object
$sock = IO::Socket::SSL->new(
Listen => 5,
LocalAddr => 'localhost',
LocalPort => 443,
Proto => 'tcp',
Reuse => 1,
SSL_verify_mode => 0x01,
SSL_use_cert => 1,
SSL_server => 1,
SSL_cipher_list => 'ALL',
SSL_key_file => $key_file,
SSL_cert_file => $cert_file,
) or die "Can\'t create socket " . &IO::Socket::SSL::errstr . " [!$]";
while (1) {
print "Waiting for new connection............ ";
while(($s = $sock->accept())) {
my ($subject_name, $issuer_name);
if( ! $s ) {
print "[ FAIL ]\n\t\tError: ", $sock->errstr, "\n";
next; # wait for new connection
}
print "[ OK ]\n";
if( ref($sock) eq "IO::Socket::SSL") {
$subject_name = $s->peer_certificate("subject");
$issuer_name = $s->peer_certificate("issuer");
}
print "subject_name: $subject_name,\nissuer_name=$issuer_name\n";
close ($s);
}
}