bri*_*foy 6 perl cpan mojolicious
Perl的Mojolicious支持服务器名称标识(SNI) ,其中一些Web服务器使用托管多个站点,一个HTTPS证书.我正在研究一个没有设置使用它的系统,并且谷歌搜索不会发现任何使过程清晰且各个部分明显的东西.StackOverflow问题Perl LWP GET或POST到SNI SSL URL提到了一些事情.
那么,我需要做的一切是什么?
首先,它不是支持SNI的Mojolicious(或LWP或其他).它是IO :: Socket :: SSL,但不是真的,因为它是Net :: SSLeay,但不是因为它是你的openssl版本.
--prefix选项配置将其安装在新目录中,这样您就不会打扰已有的内容以及其他依赖项.您可以通过查看每个模块的Changes文件找到此信息,但是当我们在这里时,让我们将Net :: SSLeay排序,并不像安装模块那么简单.
你需要注意的一些事情:
使用OPENSSL_PREFIX变量来告诉cpan(以及它运行的东西)在哪里找到正确的openssl.
$ export OPENSSL_PREFIX=/usr/local/ssl
$ cpan Net::SSLeay IO::Socket::SSL
Run Code Online (Sandbox Code Playgroud)
如果您已经拥有最新的Net :: SSLeay但是针对较旧版本的openssl进行了编译,那么您可以强制安装该模块以重新编译它,即使它cpan认为它是最新的:
$ cpan -f Net::SSLeay IO::Socket::SSL
Run Code Online (Sandbox Code Playgroud)
IO :: Socket :: SSL有方法来检查这个(在1.84中添加):
$ /usr/local/ssl/bin/openssl version
OpenSSL 1.0.1r 28 Jan 2016
$ perl -MIO::Socket::SSL -le 'print IO::Socket::SSL->VERSION'
2.024
$ perl -MIO::Socket::SSL -le 'print IO::Socket::SSL->can_client_sni'
1
Run Code Online (Sandbox Code Playgroud)