29

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

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

4

3 回答 3

47

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

于 2010-02-04T13:58:41.727 回答
15

根据RFC 2818“HTTP over TLS”的第 3.1 节“服务器身份” ,客户端应该将服务器证书中主题 DN(可分辨名称)的 CN(通用名称)部分与服务器证书中的 DNS 主机名进行比较。网址。

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

于 2010-02-04T13:58:19.757 回答
1

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

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

于 2020-12-22T10:29:42.003 回答