Keytool设置主机名

时间:2010-02-04 13:50:53

标签: java web-services https certificate keytool

我只是试图使用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]%

由于我已将所有字段都设置为hostname,我可以假设我的主机名设置为hostname吗?

3 个答案:

答案 0 :(得分:35)

CN =主机名 - 这是您在这里被要求的第一个选项。令人困惑的是,keytool将其称为“名字和姓氏”。

答案 1 :(得分:14)

根据RFC 2818 "HTTP over TLS"的第3.1节“服务器标识”,客户端应该将服务器证书中主题DN(专有名称)的CN(公用名)部分与DNS主机名进行比较。 URL。

因此,使用公共名称(CN)作为主机名(keytool的第一个问题)。

答案 2 :(得分:0)

SAN(主题备用名称)也很好用。 keytool ...... -ext "SAN=DNS:"

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