生成Certificate Signing Request(CSR)

in #ssl8 years ago

20150323231545

什么是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 []:[email protected] ###实际邮箱地址

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/[email protected]"
这个相当于预填信息生成。其中C是国家、ST是省份、L是城市、O是名称、OU是类别、CN是域名、emailAddress是邮箱。可以结合上面看,更清楚。

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

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

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.030
BTC 58668.45
ETH 3162.85
USDT 1.00
SBD 2.44