下面的CLIENT端可以与前文提到的JAVA服务端通信:
# use strict;
use IO :: Socket SSL(deBUG4);
my ( $v_mode , $sock $buf );
if ( $ARGV [ 0 ] eq " DEBUG ) { $IO SSL DEBUG = 1 ; }
Check to make sure that we were not accIDentally run in the wrong
# directory: unless ( - d certs ) {
../certs chdir .. ;
} else {
dIE "Please run this example from the IO::Socket::SSL distribution directory!\n"; }
}
( ! -> new( PeerAddr => ' 172.19.149.52
PeerPort 5555
Proto tcp
SSL_verify_mode 0x01
SSL_ca_file mycerts/cacert.pem
))) {
warn unable to create socket: & IO errstr \n ;
exit );
} {
connect ($sock).\n DEBUG);
}
check server cert. $subject_name $issuer_name $cipher );
( ref ) eq IO::Socket::SSL ) {
peer_certificate( subject );
issuer get_cipher();
}
cipher: $cipher.\n server cert:\n
\t '$subject_name' \n\t '$issuer_name'.\n\n ;
print Knock, knock.\n ) getlines;
close ();
read: '$buf'.\n ;
另外,也给出一个PERL的SVR端示例:
SSL(deBUG4);
$s new( Listen 5
LocalAddr 10.56.28.35
LocalPort 9000
Proto
Reuse
SSL_use_cert 0x00
SSL_cert_file mycerts/cert.pem
SSL_key_file mycerts/key.pem
)) ) {
);
}
socket created: $sock.\n while ) {
waiting for next connection.\n ;
(( accept ())) {
$peer_cert $date $str );
) {
error: ;
next ;
}
connection opened ($s).\n ;
) {
);
);
}
\t subject: '$subject_name'.\n \t issuer: '$issuer_name'.\n ;
localtime ();
my date command says it's: '$date' );
\t connection closed.\n ;
}
}
loop exited.\n ;
在PERL中写SSL的SOCKET,要注意:
SVR端中:
SSL_use_cert => 1,
SSL_verify_mode => 0x00,sans-serif; Font-size:13px; line-height:19.5px"> SSL_cert_file => 'mycerts/cert.pem',sans-serif; Font-size:13px; line-height:19.5px"> SSL_key_file => 'mycerts/key.pem'
Cli端是:
SSL_verify_mode => 0x01,sans-serif; Font-size:13px; line-height:19.5px"> SSL_ca_file => 'mycerts/cacert.pem',sans-serif; Font-size:13px; line-height:19.5px">mode是0表示,不认证对端,是1表示要认证对方。 总结
以上是内存溢出为你收集整理的Perl与Java的SSL通信示例全部内容,希望文章能够帮你解决Perl与Java的SSL通信示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)