密钥工具设置主机名

34

我想使用Java的keytool,但无法弄清如何设置主机名。

这是我的尝试:

hostname[username:/this/is/a/path][640]% keytool -keystore server.keystore -genkeypair -alias hostname
Enter keystore password:
Re-enter new password:
What is your first and last name?
  [Unknown]:  hostname
What is the name of your organizational unit?
  [Unknown]:  hostname
What is the name of your organization?
  [Unknown]:  hostname
What is the name of your City or Locality?
  [Unknown]:  hostname
What is the name of your State or Province?
  [Unknown]:  hostname
What is the two-letter country code for this unit?
  [Unknown]:  CA
Is CN=hostname, OU=hostname, O=hostname, L=hostname, ST=hostname, C=CA correct?
  [no]:  yes

Enter key password for <hostname>
        (RETURN if same as keystore password):
hostname[username:/this/is/a/path][641]%

既然我已将所有字段都设置为主机名,那么我可以假设我的主机名已设置为主机名吗?

3个回答

51

CN = 主机名 - 这是您在此处被要求选择的第一个选项。 keytool将其称为“名字和姓氏”很容易引起混淆。


3
我本来就怀疑是这样,但我想确认一下这不是我的问题。这个工具真是不清晰。(谢谢!) - sixtyfootersdude
在服务器密钥库或客户端信任库中设置主机名哪个更重要?无论哪种情况,我们都在每台机器上使用相同的命令,对吗? - Entree

15
根据RFC 2818 "HTTP over TLS"的3.1节“服务器身份”,客户端应该将服务器证书主题DN(可分辨名称)的CN(通用名称)部分与URL中的DNS主机名进行比较。因此,请使用通用名称(CN)作为主机名(keytool的第一个问题)。

哇,现在我对这个问题有了更好的理解,再次审查它。你指向RFC的指针非常有用。谢谢! - sixtyfootersdude

2

还有一个不错的选项是使用SAN(另一个名称)。keytool ...... -ext" SAN = DNS:"

SAN = IP:也是可能的。这些条目也将在主机名验证中再次检查,从而使您能够为服务器拥有一个证书,即使它具有多个DNS名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接