|
|
1
8
最简单的方法是对所有域名使用一个证书。将所有其他站点名称放在SAN中(主题备用名称)。 如果您喜欢为每个域名使用一个证书,您可以编写自己的密钥管理器,并使用别名来标识域,这样您就可以使用单个密钥库。在我们的系统中,我们约定keystore别名始终等于证书中的cn。所以我们可以这样做,
…
|
|
|
2
5
您将无法使用默认值
相反,
initialize
另一个
后
|
|
|
3
2
我最近遇到了类似的情况。我有一个定制的嵌入式Java Web服务器,可以承载任意数量的网站。每个网站都有自己的域名。在服务器上为每个网站/域分配一个唯一的IP地址。为端口80上的每个IP地址创建一个套接字侦听器。 对于具有SSL证书的站点,我将密钥和证书导入到单个密钥库中。我为每个域的SSL证书分配了一个证书别名以匹配域名。在端口443上为每个具有SSL证书的域/网站分配一个新的套接字侦听器。 默认情况下,标准Java X509KEYMAMER和SUNX509实现 will pick the first aliases it finds for which there is a private key and a key of the right type for the chosen cipher suite (typically RSA) .不幸的是,所选别名不一定与请求的域对应,因此最终会出现证书错误。 为了规避这个问题,我用 ZZ Coder's suggestion 实现了一个自定义的X509KeyManager。实际上,对于我的服务器,我需要一个X509ExtendedKeyManager,它有一个额外的chooseEngineServerAlias()方法。 我的自定义密钥管理器依赖于主机名及其相应IP地址的哈希图。当发出新的SSL请求时,它会检查传入的IP地址并找到相应的主机名。然后,它尝试在密钥库中找到与主机名对应的别名。
自定义密钥管理器用于初始化SSLContext。很酷的是,您只需要初始化一个sslcontext。
|
|
|
user826955 · 使用节点。js使用CA证书验证X509证书 8 年前 |
|
|
NineBerry · 使用pure生成并签署证书请求。net框架 8 年前 |
|
|
user1115980 · Sylog ng证书问题 8 年前 |
|
|
Michel · 未安装分发证书/私钥 8 年前 |
|
|
Thomas Schneiter · 信任来自IIS的自签名证书 8 年前 |
|
|
kdragon · VBA-https响应文本解密 8 年前 |
|
|
Gulumal · WCF中基于证书的身份验证 8 年前 |