【问题标题】:Self-SIgned SSL for internal network security用于内部网络安全的自签名 SSL
【发布时间】:2015-12-10 09:32:59
【问题描述】:

我们希望为我们的内部服务使用自签名证书,实际上只是为了让所有内容都通过加密的网络发送。

我遇到的问题是自签名证书的安全性。所有 Jetty 实例都使用相同的密钥库,因此理论上证书已加载...实际上从调试日志记录中我有

找到密钥:staging-linweb01 链 [0] = [ [ 版本:V3
主题:CN=staging-linweb01,OU=软件开发, O=someplace.com, L=Somewhere, ST=Somewhere, C=ZA Signature 算法:SHA256withRSA,OID = 1.2.840.113549.1.1.11

密钥:Sun RSA 公钥,2048 位模数: 22594784587200309690632891312059150804687308973808921580591096263533343618426439789480037039157188264460595867528454151674753231237005959217826687232762068209631355533459054189119044758749514636616657620359265671087314976126553620526394561605421420641752060671870955789723877860923654282485572976527919222352468625611759566014112451145405478791894271337944800006309556312833441960744532218846058383652408555521199029813985649443614702157985283090052710238306045838371894973518144370565750444076220567222222129612928685843812450625948488824030966348721650049514411578506927346702477393053734393778851627929324041999837 公共指数:65537 有效性:[来自:UTC 时间 12 月 10 日星期四 08:41:14 2015年, To: Wed Mar 09 08:41:14 UTC 2016] Issuer: CN=staging-linweb01, OU=Software Development, O=someplace.com, L=某处,ST=某处,C=ZA 序列号:[3485f931]

证书扩展:2 [1]:ObjectId:2.5.29.17 Criticality=false SubjectAlternativeName [ IPAddress: 130.211.63.142 DNSName: 暂存-linweb01]

[2]:ObjectId:2.5.29.14 关键性=false SubjectKeyIdentifier [ 密钥标识符 [ 0000: B9 29 B3 C0 04 A3 BD 07 F9 AC E2 30 8A DB 25 D1 .)........0..%。 0010: 80 0C F6 24
...$]]

] 算法:[SHA256withRSA] 签名:0000:6C FD C0 AD 60 78 CB 43 DA F2 EF AD 42 D8 A1 05 l...`x.C....B... 0010: 72 AD 0E 6B 75 50 2D 85 6E 81 A7 6D 5D 50 ED CA r..kuP-.n..m]P.. 0020: ED 75 E2 BB 18 A8 59 21 BA 10 DF 7A E0 42 5E 2C .u....Y!...z.B^, 0030: F3 DD 05 96 C1 F8 E5 18 5B A4 F2 15 FC 04 67 7B ......[......g. 0040:C4 6C 67 F5 F4 07 E8 57 FC 88 77 C6 92 3C B8 1E .lg..W..w..<.. a2 ae d5 f2 e0 fd d4 ........x b8 af e2 b6 f4 cf e9 a9 .-....w.....vw.. c4 bc e6 ..8..b ... dd .="i.$Q....T%Z..." e4 df ee de ef f1 d0 ce fa z b3 ff e5 ed b4 a0 ab f7 ad dc a6 a5 d1 a3 c3 f0 e1 ca a8 a7 db aa ba kr a1 d3 lq..>

] *** 添加为受信任证书:主题:CN=staging-linweb01,OU=软件开发,O=someplace.com,L=Somewhere,ST=Somewhere , C=ZA 发行人:CN=staging-linweb01, OU=软件开发, O=someplace.com, L=Somewhere, ST=Somewhere, C=ZA 算法: RSA;序列号:0x3485f931 从 UTC 时间 12 月 10 日星期四 08:41:14 开始有效 2015 年至 2016 年 3 月 9 日星期三 08:41:14 UTC

触发 SecureRandom 的播种完成播种 SecureRandom

但是在尝试拨打电话时,即使是从服务器到自身,我也会收到此异常。

org.springframework.web.util.NestedServletException: 请求 处理失败;嵌套异常是 org.springframework.web.client.ResourceAccessException:I/O 错误 POST 请求 "https://staging-linweb01/security/oauth/token?grant_type=client_credentials":sun.security.validator.ValidatorException: PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径;嵌套异常是 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径

我也尝试使用-Djavax.net.ssl.keyStore=keystore 添加密钥库,但仍然遇到此问题。

如何配置 Jetty 和/或我的服务以免导致此错误?

【问题讨论】:

    标签: java rest https jetty


    【解决方案1】:

    您是否尝试将您的证书添加到 java 密钥库? 路径应该是:/usr/lib/jvm/jdk1.x.0/jre/lib/security

    【讨论】:

      【解决方案2】:

      您需要从您的密钥库中导出此证书并将其添加到信任库。如果没有明确指定,我认为使用来自 jvm 的默认信任库。它应该在“jre/lib/security/cacerts”中,除非您更改密码,否则密码是 changeit。

      要导入您的证书,只需使用以下命令:

      keytool -keystore jre/lib/security/cacerts -importcert -alias myCert -file myCert.cert -storepass changeit -noprompt

      或者简单地使用密钥库配置码头作为信任库。 如需完整的配置指南,请参阅:https://wiki.eclipse.org/Jetty/Howto/Configure_SSL

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-07
        • 2016-04-05
        • 1970-01-01
        • 2017-01-07
        • 2021-04-06
        • 1970-01-01
        • 2011-05-11
        相关资源
        最近更新 更多