无法启动TLS [Perl]

时间:2015-12-14 18:55:00

标签: windows perl ssl

我试图用perl发送电子邮件。我的代码在linux上运行,没有错误。 但是当我在Windows Server 2008 r2上运行我的代码时,perl sys:

  

无法启动TLS:SSL版本SSLv3不受支持。

我的perl代码:

function audioHandlers() {
    var button = document.querySelector("button");
    var prefix = "ms-appx:///";
    button.addEventListener("click", function(e) {
        playAudio( prefix + "media/intro.mp3");
    });
}

我也尝试过: http://www.techieshelp.com/how-to-enable-ssl-3-0-server-2008-sbs-2008/

https://social.technet.microsoft.com/Forums/windowsserver/en-US/74a45b74-8d84-4308-ba14-02e4bc724e27/ssl-v3-on-windows-2008?forum=winservergen

1 个答案:

答案 0 :(得分:4)

Net :: SMTP :: TLS很旧,很旧。最后一个版本是从2006年开始的。它是有缺陷的。而这些错误会导致你遇到的问题。有一个非官方的替代品Net :: SMTP :: TLS_ButMaintained但是它也认为自己也被弃用了(2013年的最后一个版本)。

使用Windows的SSL控件也无济于事,因为Perl不会使用Windows的SSL堆栈,而是使用OpenSSL。

我建议您使用最新版本的Net::SMTP。从版本3.0开始,它支持两种类型的TLS,即显式使用STARTTLS(这是您需要的)并通过直接连接到SSL端口进行隐式。它甚至支持IPv6。

使用当前的Net :: SMTP,最近的IO :: Socket :: SSL(用于SSL部分)和Authen :: SASL(用于登录部分),您可以执行以下操作:

0000000: 3174 6162 0964 6f6e 650a 3274 6162 7309  1tab.done.2tabs.                                                                                                        
0000010: 2020 2020 646f 6e65 0a33 7461 6273 0909      done.3tabs..                                                                                                        
0000020: 646f 6e65 0a34 7461 6273 0909 2020 2020  done.4tabs..                                                                                                            
0000030: 646f 6e65 0a20 2020 2031 7461 620a 0932  done.    1tab..2                                                                                                        
0000040: 7461 6273 0a09 2020 2020 3374 6162 730a  tabs..    3tabs.                                                                                                        
0000050: 0909 3474 6162 730a 0a0a 0a0a 0a0a 0a0a  ..4tabs.........