可以说我有一个JAVA客户端应用程序,它试图通过https连接到服务器(example.com)。客户端应用程序有一个信任存储JKS,它具有服务器的证书和一些其他证书。在服务器向此客户端应用程序发送证书时的握手过程中,如何从信任库jks中获取正确的证书。即基于什么参数java匹配服务器发送的证书以及存储在JKS中的证书。如何正确的证书越来越拿起在JSK握手
3
A
回答
1
匹配是由证书的Subject
完成的。
E.g.如果你浏览https://www.google.com/,看看他们的证书,它显示了一个证书链:
主题: /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com
发稿:/C=US/O=Google Inc/CN=Google Internet Authority G2
颁发者:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
问题是:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
*实际使用openssl s_client -connect www.google.com:443 -showcerts
如果您的信任库中有任意这些证书将被信任。
您可以扫描这样的信任(假设你有grep
):
keytool -list -keystore /path/to/cacerts -storepass changeit -v | grep "CN=GeoTrust Global CA" -B 4 -A 8
为了得到这种输出的:
Alias name: geotrustglobalca
Creation date: Jul 18, 2003
Entry type: trustedCertEntry
Owner: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
Issuer: CN=GeoTrust Global CA, O=GeoTrust Inc., C=US
Serial number: 23456
Valid from: Tue May 21 00:00:00 EDT 2002 until: Sat May 21 00:00:00 EDT 2022
Certificate fingerprints:
MD5: F7:75:AB:29:FB:51:4E:B7:77:5E:FF:05:3C:99:8E:F5
SHA1: DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12
SHA256: FF:85:6A:2D:25:1D:CD:88:D3:66:56:F4:50:12:67:98:CF:AB:AA:DE:40:79:9C:72:2D:E4:D2:B5:DB:36:A7:3A
Signature algorithm name: SHA1withRSA
Version: 3
相关问题
- 1. 移动SSL证书 - 现在越来越java.security.cer.CertPathValidatorException
- 2. 越来越多的信号手柄
- 3. 问题越来越MD5指纹签名证书
- 4. BerkeleyDB越来越胖,越来越慢
- 5. 越来越不确定变量的NodeJS
- 6. PDO越来越不确定的变量
- 7. JavaScript的数据越来越不确定
- 8. reset_password_token越来越手段传给从网址验证错误
- 9. 越来越在的viewController
- 10. 越来越角和intern.io一起工作
- 11. 起订量越来越从测试类
- 12. 如何获取正在SSL握手中使用的证书?
- 13. 如何从证书链创建JSK
- 14. 的XPath越来越
- 15. 越来越
- 16. 越来越CursorIndexOutOfBoundsException
- 17. 越来越hibernate.QueryException,
- 18. 越来越
- 19. 越来越java.lang.NoSuchMethodError
- 20. 越来越
- 21. 越来越java.lang.classCastException:android.os.Bundle
- 22. 越来越以 '/'
- 23. 越来越java.lang.ArrayIndexOutOfBoundsException
- 24. 越来越org.springframework.web.bind.MissingServletRequestParameterException
- 25. 越来越
- 26. 我越来越
- 27. 越来越元
- 28. 我写在Firefox中硒脚本,但我越来越“不受信任的证书”
- 29. 我越来越有做不正确的Xcode语法
- 30. 跨度ID越来越不确定