生成Certificate Signing Request(CSR)

提醒:本文最后更新于 2650 天前,文中所描述的信息可能已发生改变,请仔细核实。

什么是CSRCSR全称是Certificate Signing Request,即证书注册请求。

在申请SSL证书前,常常需要自己先生成证书注册请求。

一般使用这条命令来生成:

openssl req -nodes -newkey rsa:2048 -keyout kn007.net.key -out kn007.net.csr

生成过程中会填写一些信息,可以随便写,不过为了自己,最好还是按实际的填比较好。

简单列出来给大家看看:

Generating a 2048 bit RSA private key
...........................................................+++
...................................................+++
writing new private key to 'kn007.net.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN ###国家名称简写
State or Province Name (full name) []:GD ###洲、省份名称简写
Locality Name (eg, city) [Default City]:DG ###城市名称简写
Organization Name (eg, company) [Default Company Ltd]:kn007's blog ###单位名称
Organizational Unit Name (eg, section) []:BLOG ###分类名称
Common Name (eg, your name or your server's hostname) []:kn007.net ###实际域名地址
Email Address []:kn007@126.com ###实际邮箱地址

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: ###(可选)对证书加密,一般不需要
An optional company name []: ###(可选)一个附加公司名称,算是标注,一般不需要

需要注意的是,Common Name(CN)这一项需要填写你要申请的SSL证书所使用的域名。如果是通配符证书(Wildcard certificate),俗称野卡,则需要填写如*.kn007.net

生成结束之后,kn007.net.csr就是你的Certificate Signing Request(CSR),用文本编辑器打开或者直接cat复制,粘贴到申请证书的地方即可。

kn007.net.key文件是我们的私钥,这个文件一定要妥善保存,切记不能泄露,否则任何人都可以使用我们的证书。

在生成的时候,去掉'-nodes'选项将会需要一个额外的密码对私钥加密。虽然这样更安全,但是在你将证书部署到Apache或者Nginx的时候你会发现,每次启动服务你都需要输入密码。所以建议还是使用为加密的私钥,方便服务器管理。

还有个更简单的命令,可以帮助你静默生成证书(通常用于Shell or Bash脚本):

openssl req -new -newkey rsa:2048 -nodes -out kn007.net.csr -keyout kn007.net.key -subj "/C=CN/ST=GD/L=DG/O=kn007's blog/OU=BLOG/CN=kn007.net/emailAddress=kn007@126.com"

这个相当于预填信息生成。其中C是国家、ST是省份、L是城市、O是名称、OU是类别、CN是域名、emailAddress是邮箱。可以结合上面看,更清楚。

通过这句命令将直接生成好证书请求,同样输出了kn007.net.key(私钥)和kn007.net.csr(证书注册请求)。可以说更加方便快捷,最主要是静默。

关于CSR,我们就聊到这里。 --By kn007

转载请注明转自:kn007的个人博客的《生成Certificate Signing Request(CSR)