如何制作CSR文件?
如何制作CSR文件?
在申请数字证书之前,您必须先生成证书私钥和证书请求文件(CSR,Cerificate Signing Request),CSR是您的公钥证书原始文件,包含了您的服务器信息和您的单位信息,需要提交给CA认证中心。在生成CSR文件时会同时生成私钥文件,请妥善保管和备份您的私钥。
生成CSR文件时,一般需要输入以下信息(中文需要UTF8编码):
Organization Name(O):申请单位名称法定名称,可以是中文或英文
Organization Unit(OU):申请单位的所在部门,可以是中文或英文
Country Code(C):申请单位所属国家,只能是两个字母的国家码,如中国只能是:CN
State or Province(S):申请单位所在省名或州名,可以是中文或英文
Locality(L):申请单位所在城市名,可以是中文或英文
Common Name(CN):申请SSL证书的具体网站域名
1. 使用OpenSSL工具生成CSR文件:
openssl req -new -nodes -sha256 -newkey rsa:2048 -keyout myprivate.key -out mydomain.csr
-new 指定生成一个新的CSR,nodes指定私钥文件不被加密, sha256 指定摘要算法,keyout生成私钥, newkey rsa:2048 指定私钥类型和长度,最终生成CSR文件mydomain.csr。
需要输入的信息说明如下:
字段 | 说明 | 示例 |
---|---|---|
Country Name |
ISO国家代码(两位字符) |
CN |
State or Province Name |
所在省份 | ZheJiang |
Locality Name |
所在城市 | HangZhou |
Organization Name |
公司名称 | HangZhou xxx Technologies, Inc. |
Organizational Unit Name |
部门名称 |
IT Dept. |
Common Name | 申请证书的域名 | www.example.com |
Email Address | 不需要输入 | |
A challenge password | 不需要输入 |
完成命令提示的输入后,会在当前目录下生成myprivate.key(私钥文件)和mydomain.csr(CSR,证书请求文件)两个文件。
在使用openssl工具生成中文证书时需要注意中文编码格式,使用utf8编码,同时需要编译openssl工具时指定支持utf8格式。
如果对中文有需求,推荐您使用keytool工具。
2. 使用keytool工具生成CSR文件:
- 2.1 先生成证书文件keystore, 证书文件中包含密钥, 导出密钥方式请参考 主流数字证书都有哪些格式?
keytool -genkey -alias mycert -keyalg RSA -keysize 2048 -keystore ./mydomain.jks
keyalg是密钥类型,必须是RSA, keysize是密钥长度为2048, alias 是证书别名可自定义, keystore是证书文件保存路径。
首先输入证书保护密码,然后依次输入:
问题 | 说明 | 示例 |
---|---|---|
What is your first and last name? | 申请证书的域名 | www.example.com |
What is the name of your organizational unit? | 部门名称 | IT Dept. |
What is the name of your organization? | 公司名称 | HangZhou xxx Technologies,Ltd. |
What is the name of your City or Locality? | 所在城市 | HangZhou |
What is the name of your State or Province? | 所在省份 | ZheJiang |
What is the two-letter country code for this unit? | ISO国家代码(两位字符) | CN |
输入完成后,确认输入内容是否正确:[no]: Y (输入Y)
而后提示输入密钥密码,可以与证书密码一致,如果一致则直接按回车。
- 2.2 通过证书文件生成证书请求:
keytool -certreq -sigalg SHA256withRSA -alias mycert -keystore ./mydomain.jks -file ./mydomain.csr
sigalg是摘要算法,使用SHA256withRSA, alias 是别名,必须与2.1步中的别名一致,keystore是证书文件,file是证书请求文件(CSR),而后提示输入证书密码即可以生成mydomain.csr。
需要注意的是:我们对CSR的密钥长度有严格要求,要求是2048位,密钥类型必须为RSA。如果申请证书是多域名或者通配子域名,在“Common Name”或"What is your first and last name?" 字段只需要输入一个域名即可(通配子域名可以输入“*.example.com"等)。