Mojolicious(hypnotoad)- 强制使用TLS v1.2

5

如何强制Mojolicious(hypnotoad)应用使用TLS v1.2?

mojo version 输出:

CORE
  Perl        (v5.16.3, linux)
  Mojolicious (8.0, Supervillain)

OPTIONAL
  Cpanel::JSON::XS 4.04+  (n/a)
  EV 4.0+                 (4.22)
  IO::Socket::Socks 0.64+ (n/a)
  IO::Socket::SSL 2.009+  (2.060)
  Net::DNS::Native 0.15+  (n/a)
  Role::Tiny 2.000001+    (2.000005)

hypnotoad配置:

{
     hypnotoad => {
         listen => ['https://myserver.domain.com:xxxx?cert=/path/to/cert/file.cer&key=/path/to/key/file.key'],
     }
}

以下是我如何启动Hypnotoad:

hypnotoad -f script/apps

我已按建议更新了IO::Socket::SSL模块,但是它没有起作用。非常感谢任何指导。
1个回答

9

my_app.conf中配置版本为TLSv1_2,例如:

{
    secrets => ['………'],
    hypnotoad => {
        listen  => ['https://localhost:8443?cert=server_cert.pem&key=server_key.pem&version=TLSv1_2'],
    }
}

使用 curl -k -v https://localhost:8443 进行测试。守护进程默认提供1.3版本,但在强制使用时将使用1.2版本。


我已经启用了TLSv1.2,但是如何禁用TLSv1.0和TLSv1.1?看起来设置MOJO_NO_TLS环境变量可以完全禁用TLS。此外,是否有一种方法可以禁用以下内容:ssl-3des-ciphersssl-static-key-ciphers?我查看了Mojo::Server::HypnotoadMojo::Server::Daemon,但没有找到答案。 - Sachin Dangol
1
这很快就变成了“我该如何配置OpenSSL/IO::Socket::SSL”。阅读IO::Socket::SSL中的SSL_versionman ciphers。配置TLSv1_2已经禁用了除1.2之外的任何内容。您可以使用openssl s_client -tls1_1 -connect localhost:8443进行检查。 - daxim
1
配置项是Mojo::Server::Daemon中的ciphers,你没有仔细查看。使用https://mozilla.github.io/server-side-tls/ssl-config-generator/查找推荐的密码套件字符串,我检查了“现代”配置文件,它不包含3DES或静态密钥密码套件。如果您不理解,请[开一个新问题](https://stackoverflow.com/questions/ask)。 - daxim
再次感谢 @daxim 的帮助。我已经理解了,问题已经解决了。 - Sachin Dangol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接