在Clojure中连接到HTTPs服务器时如何指定TLS密码

时间:2018-06-25 22:08:32

标签: https clojure slurp

当我使用“ slurp”从“ https://clojuredocs.org/clojure.core/slurp”获取HTML页面时,总是会收到如下异常:

SSLHandshakeException Received fatal alert: handshake_failure  sun.security.ssl.Alerts.getSSLException (Alerts.java:192) 

但是当我使用'wget'下载相同页面时没有问题。在比较了pcaps之后,我发现问题可能是由客户端选择的密码套件引起的。当我使用“ slurp”时,选择了22个密码套件,而wget选择了66个密码套件(我不能在这里列出所有密码套件)。

所以我的问题是:有没有一种方法可以配置JVM的默认密码套件,以使Slurp与“ https://clojuredocs.org”一起使用?

1 个答案:

答案 0 :(得分:0)

您可能想在JVM级别解决此问题。例如在我的机器上,它就可以正常工作:

(subs (slurp "https://clojuredocs.org") 0 10)
"<!DOCTYPE "

我在IBM Java中都尝试了这两种方法:

java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 8.0.5.11 - pxa6480sr5fp11-20180326_01(SR5 FP11))
IBM J9 VM (build 2.9, JRE 1.8.0 Linux amd64-64 Compressed References 20180309_380776 (JIT enabled, AOT enabled)

和Oracle Java:

java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

听起来像您需要最新的Java版本,一切都会很好。您使用的是哪个版本?