转自https://www.digicert.com/kb/csr-ssl-installation/tomcat-keytool.htm#create_csr_keytool
Tomcat:创建 CSR 并安装 SSL/TLS 证书(Keytool)
使用 Java 的 Keytool 创建 CSR 并在 Tomcat(或其他基于 Java 的)服务器上安装 SSL/TLS 证书
使用这些说明生成证书签名请求 (CSR) 并使用 Java 的 Keytool 在 Tomcat 服务器上安装 SSL/TLS 证书。
重新启动 注意:安装 SSL/TLS 证书并配置服务器以使用它后,您必须重新启动 Tomcat 服务。
-
要创建您的证书签名请求 (CSR),请参阅Tomcat 服务器:使用 Java Keytool 创建您的 CSR。
-
要安装 SSL 证书,请参阅Tomcat 服务器:安装和配置 SSL/TLS 证书。
要以西班牙语查看这些说明,请参阅CSR para Tomcat和Tomcat Instalar Certificado SSL。
如果您正在寻找一种更简单的方法来创建 CSR,以及安装和管理您的 SSL/TLS 证书,我们建议使用适用于 Windows的 DigiCert ®证书实用程序。您可以使用 DigiCert 实用程序生成 CSR 并准备 SSL/TLS 证书文件以安装在 Tomcat 服务器上。请参阅Tomcat:使用 DigiCert 实用程序创建 CSR 和安装 SSL/TLS 证书。
一、Tomcat服务器:用Java的Keytool创建你的CSR
使用本节中的说明创建新的密钥库 (.jks) 文件并生成您的 CSR。
推荐方法:使用 DigiCert Java Keytool CSR 向导
节省一些时间: 使用DigiCert Java Keytool CSR 向导生成一个 Keytool 命令来创建您的 Tomcat 密钥库和 CSR。
-
只需填写表格,单击Generate,然后将您定制的 Java Keytool 命令粘贴到您的终端中。
-
Java keytool 实用程序会创建您的私钥和证书签名请求,并将它们保存到两个文件中:your_common_name.jks 和 your_common_name.csr。
-
然后,您可以复制 CSR 文件的内容并将其粘贴到我们订单中的 CSR 文本框中。
-
跳到第 2 步,第 3 部分:保存和备份您的密钥库文件。
您是否喜欢更手动的方法来生成 Tomcat 密钥库和 CSR?请按照以下说明进行操作。
第 1 步:使用 Keytool 创建新的密钥库
重要提示:我们建议您按照本节中概述的过程生成新的密钥库。将新证书安装到旧密钥库通常会导致安装错误或 SSL/TLS 证书无法正常工作。在开始此过程之前,请备份并删除所有旧密钥库。
-
运行命令
-
导航到您计划管理密钥库和 SSL/TLS 证书的目录。
-
输入下面的命令。
keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore your_site_name.jks
在上面的命令中,your_site_name应该是您要使用此 SSL/TLS 证书保护的域的名称。订购通配符证书时,请勿在文件名中包含星号 (*)(例如 your_site_name)。星号不是有效的密钥工具字符。
-
创建一个密码
-
出现提示时,为您的密钥库创建一个密码。
注意:您将在 Tomcat 配置文件中指定此密码,然后使用它来生成您的 CSR 并导入您的证书。
-
将此密码存储在安全的地方,例如受信任且安全的密码管理器。
-
-
输入您的 SSL/TLS 证书信息。
重要提示:当提示输入名字和姓氏时,请勿输入您的名字和姓氏。相反,键入您使用此证书保护的站点的完全限定域名 (FQDN)(例如www.yourdomain.com、mail.yourdomain.com)。您要订购通配符证书吗?那么您的 FQDN 必须以星号 (*) 开头。(例如,*.yourdomain.com)。
-
输入您的组织信息。
-
当系统提示您验证您的信息时,输入y或yes进行确认。
-
当询问“<server> 的密钥密码”时,按 Enter 键使用您刚刚为密钥库文件创建的密码。
-
-
您的密钥库文件 your_site_name.jks 现在已创建并位于您当前的工作目录中。
第 2 步:从您的新密钥库生成证书签名请求 (CSR)
-
运行命令
-
在 Keytool 中,键入以下命令:
keytool -certreq -alias server -file csr.txt -keystore your_site_name.jks
在上面的命令中,your_site_name应该是您在第 1 步中创建的密钥库文件的名称:使用 Keytool 创建新的密钥库或使用DigiCert Java Keytool CSR 向导时。
-
出现提示时,输入您之前创建的密码(当您创建新的密钥库时)。
-
在您的当前目录中,csr.txt(例如your_site_domain.txt)现在包含您的 CSR。
-
-
保存和备份您的密钥库文件
-
记下您的密钥库文件 (your_site_domain.jks) 的路径,因为您的 SSL/TLS 证书稍后将安装到该文件中。
-
我们建议您在继续之前创建密钥库文件 (your_site_domain.jks) 的备份副本。备份 Keystore 文件有助于解决证书 SSL/TLS 安装过程中可能出现的问题。
-
-
订购您的 SSL/TLS 证书
-
使用文本编辑器打开您创建的 .csr 文件。
-
复制文本,包括 -----BEGIN NEW CERTIFICATE REQUEST----- 和 -----END NEW CERTIFICATE REQUEST----- 标签,并将其粘贴到DigiCert 订单中。
-
确保在选择服务器软件时选择Tomcat。
安装证书
-
从 DigiCert 收到 SSL/TLS 证书后,您可以将其安装在 Tomcat 服务器上。
二、Tomcat 服务器:安装和配置您的 SSL/TLS 证书
需要创建您的证书签名请求 (CSR)?请参阅Tomcat 服务器:使用 Java Keytool 创建您的 CSR。
在我们验证并颁发您的 SSL/TLS 证书后,您可以将其安装在您的 Tomcat 服务器(生成 CSR 的位置)上,然后配置服务器以使用该证书。
第 1 步:使用 Java Keytool 将 SSL/TLS 证书安装到密钥库
-
下载证书
-
登录到您的 DigiCert 帐户。
https://www.digicert.com/account/login.php
在我的订单选项卡上,单击订单号,然后单击下载。
-
将 your_domain_com.p7b 证书保存到与 Java 密钥库相同的目录中。
注意:如果您使用我们的 Keytool CSR 命令生成器或按照我们的说明生成 CSR,则密钥库文件名为your_site_name.jks。
-
-
在您的密钥库中安装证书文件
重要提示:您必须将 SSL/TLS 证书文件安装到用于生成 CSR的相同密钥库和相同别名(例如,“-alias server ”)下。如果您尝试将证书安装到不同的密钥库或使用不同的别名,则导入命令将不起作用。
-
运行以下命令将证书导入您的密钥库。
keytool -import -alias server -file your_site_name.p7b -keystore your_site_name.jks
在上面的命令中,your_site_name.p7b应该是您下载的证书文件的名称,your_site_name.jks应该是您在步骤 1:使用 Keytool 创建新密钥库或使用DigiCert Java Keytool时创建的密钥库文件的名称CSR Wizard ., server应该是您在生成 CSR 时使用的别名。
-
您应该得到确认“证书回复已安装在密钥库中”。
-
如果系统提示您信任证书,请键入y或yes。
-
此文件的安装会将所有必要的证书加载到您的密钥库中。
-
-
您的密钥库文件 (your_site_name.jks) 现在可以在 Tomcat 服务器上使用。现在,您已准备好配置您的服务器以使用它。
第 2 步:配置您的 SSL/TLS 连接器
在您的 Tomcat 服务器可以接受安全连接之前,您需要配置一个 SSL 连接器。
-
使用文本编辑器打开 Tomcat server.xml 文件。
通常,server.xml 文件位于 Tomcat 主目录的 conf 文件夹中。
-
找到您希望新密钥库保护的连接器。
通常使用端口为 443 或 8443 的连接器;请参见步骤 4。请注意,您可能需要取消注释连接器 - 删除注释标签(<!-- 和 -->)。
-
配置 Tomcat 连接器。
确保在连接器配置中指定新的密钥库文件名和密码。
-
完成后,您的连接器应该类似于下面的示例。
注意:您使用的是 Tomcat 7 之前的 Tomcat 版本吗?然后您需要将keystorePass更改为keypass。
<Connector port="443" maxHttpHeaderSize="8192" maxThreads="100" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" SSLEnabled="true" clientAuth="false" sslProtocol="TLS" keyAlias="server" keystoreFile="/home/user_name/your_site_name.jks" keystorePass="your_keystore_password" />
在上面的连接器配置中,keystoreFile是您的密钥库文件的完整路径,keystorePass是您用于创建密钥库的密码,而keyAlias是您用来生成 CSR 的同一个别名(例如,“server”)。
-
保存对 server.xml 文件的更改。
-
重新启动 Tomcat 服务。
-
恭喜!您已成功安装 SSL 证书。
测试您的 SSL/TLS 证书安装
您的网站可以公开访问吗?然后使用我们的DigiCert ® SSL 安装诊断工具来测试您的 SSL/TLS 证书安装;它检测常见的安装问题。