【问题标题】:Self Signed Certificate - Can't access relative links from client自签名证书 - 无法从客户端访问相关链接
【发布时间】:2014-09-06 23:26:59
【问题描述】:

我在 linux 上运行 jetty,并使用 ssl。我有一个自签名证书,在浏览器中一切正常;我只需要告诉浏览器信任证书,因为它来自不受信任的来源。但是,如果我尝试从我的 Web 应用程序访问链接(如图像;https://www.xxxx.com/pictures/picture.jpg),则会出现错误:

07/16 08:14:28.708 WARN  [log] () EXCEPTION
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1959)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
    at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:631)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)

我想我需要让客户信任自签名证书。我试过这个:

使用 keytool,为代理创建证书:

keytool -genkey -alias broker -keyalg RSA -keystore broker.ks

导出代理的证书,以便与客户共享:

keytool -export -alias broker -keystore broker.ks -file broker_cert

为客户端创建证书/密钥库:

keytool -genkey -alias client -keyalg RSA -keystore client.ks

为客户端创建一个信任库,并导入代理的证书:

keytool -import -alias broker -keystore client.ts -file broker_cert

我在启动 Jetty 时将这些包括在内:

javax.net.ssl.keyStore=/path/to/client.ks

javax.net.ssl.keyStorePassword=密码

javax.net.ssl.trustStore=/path/to/client.ts


我确保码头使用我通过浏览器生成的证书。我错过了什么?

【问题讨论】:

    标签: java ssl https jetty self-signed


    【解决方案1】:

    为服务器购买了证书,解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-21
      • 2013-07-14
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 2020-05-17
      • 2017-02-25
      • 1970-01-01
      相关资源
      最近更新 更多