【问题标题】:What should be the value for CN in vendor provided SSL certificate?供应商提供的 SSL 证书中 CN 的值应该是多少?
【发布时间】:2019-12-19 05:05:50
【问题描述】:

实际上我在 truststore.jks 中有这样的条目:

所有者:CN=ABC XYZ, O=ABC, C=IN

发行人:CN=ABC XYZ,O=ABC,C=IN

当我尝试通过配置 jks 来使用 java 代码进行连接时,我得到了以下异常:

java.net.SocketException:java.security.NoSuchAlgorithmException:构造实现时出错(算法:默认,提供者:IBMJSSE2,类:com.ibm.jsse2.aj)

有人知道理想情况下,自签名证书和供应商提供的证书中 CN 的条目应该是什么?

是否必须提及 CN 的主机/域名,例如 *.domain.com 或 host.domian.com?

CN应该有什么意义?请详细描述

【问题讨论】:

  • 错误NoSuchAlgorithmException与CN无关。这是关于 SSL 连接的加密算法。您使用的是最新版本的 Java 吗?
  • @Andreas:实际上,这在我看来更像是缺少或错误的 SSLContext 类型——或者可能是 KeyStore 类型,这对于配置或更改信任库是有意义的,尽管我同意与证书本身无关。

标签: java ssl openssl keystore truststore


【解决方案1】:

是的,CN 必须与服务器的域名匹配。

请通过link了解详细说明。

【讨论】:

  • 为什么CN要匹配ISSUER的主机名,即CA(Certificate Authority)? 服务器证书应与您要连接的服务器的域名匹配。
  • (@Andreas+) SSL/TLS server 证书应该有 CN=domainname -- 尽管自 2010 年之前它也应该有包含域名 或名称复数 在这种情况下 CN 不再重要(如您自己的链接所述)。但是,如果对等方使用私有或其他非标准 CA 来颁发工作证书,您的信任库应该有 CA 证书,它不需要需要任何特定格式的 CN。
猜你喜欢
  • 1970-01-01
  • 2010-10-03
  • 2013-07-20
  • 2014-06-24
  • 2014-11-19
  • 1970-01-01
  • 2022-07-26
  • 2015-04-28
相关资源
最近更新 更多