用比较通俗的例子来理解证书请求文件: 比如我自己的网站,需要使用https 通信,那么我向“证书机构”申请数字证书的时候,就需要向他们提供相应的信息,这些信息以特定文件格式(.csr)提供的,这个文件就是“证书请求文件”;为了确保我提供的信息在互联网的传输过程中不会被有意或者无意的破坏掉,我们有如下的机制来对传输的内容进行保护:首先在本地生成一个私钥,利用这个私钥对“我们需要提供的信息“进行加密,从而生成 证书请求文件(.csr), 这个证书请求文件其实就是私钥对应的公钥证书的原始文件,里面含有对应的公钥信息; 这一系列听起来很复杂,不过我们有很多工具可以用,Linux下常用openssl 命令来实现:
#生成私钥:myprivate.key ,采用rsa 算法,2048bit
[root@localhost cert_test]# openssl genrsa -out myprivate.key 2048
Generating RSA private key, 2048 bit long modulus
.........................................................................+++
...................+++
e is 65537 (0x10001)
[root@localhost cert_test]# ls
myprivate.key
[root@localhost cert_test]#
利用私钥生成证书请求文件my_cert.csr ,这个文件是公钥证书的原始文件; 在生成CSR文件的时候,需要根据“证书机构” 提供的证书X.509 信息来填写,不可以随便乱填哦!(下面的示例是乱填写的哦), 在本例子中,生成签名证书的时候要求如下的信息必须相同:Country Name, State or Province Name, Organization Name
[root@localhost cert_test]# openssl req -new -key myprivate.key -out my_cert.csr -days 180
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) []:GuangDong
Locality Name (eg, city) [Default City]:GuanagZhou
Organization Name (eg, company) [Default Company Ltd]:mycompany
Organizational Unit Name (eg, section) []:Tech_depart
Common Name (eg, your name or your server's hostname) []:www.my.com
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@localhost cert_test]# ls
my_cert.csr myprivate.key #分别是私钥,以及证书请求文件;
[root@localhost cert_test]#
至此,证书请求文件就成功生成了; 想必你一定明白了什么是证书请求文件以及怎么用openssl创建证书请求文件了吧! 下一篇 带你通俗理解根证书CA以及创建根证书CA. 本文原创,转载请注明出处