什么是CSR以及CSR的作用和生成

什么是CSR?

CSR或证书签名请求是申请SSL证书时提供给证书颁发机构的一段Base64编码文本。它通常是在将安装证书的服务器上生成的,并包含将包含在证书中的信息,如组织名称、通用名称(域名)、地区和国家。它还包含将包含在证书中的公钥。私钥通常在你创建CSR的同时创建,形成一个密钥对。一个CSR通常是根据PKCS#10规范使用ASN.1编码的。

证书颁发机构将使用CSR来创建SSL证书,但它不需要你的私钥。你需要对你的私钥进行保密。用一个特定的CSR创建的证书将只与用它生成的私钥一起工作。因此,如果你丢失了私钥,证书将无法正常使用

 

CSR长什么样子?

大多数CSR是以Base-64编码的PEM格式创建的。这种格式包括CSR开头和结尾的"-----BEGIN CERTIFICATE REQUEST-----"和"-----END CERTIFICATE REQUEST-----"行。一个PEM格式的CSR文件可以在文本编辑器中打开,看起来像下面的例子

-----BEGIN CERTIFICATE REQUEST-----
MIIC0zCCAbsCAQAwgY0xFjAUBgNVBAMMDXd3dy5zc2xhYWEuY24xMDAuBgNVBAoM
J+S4reWxseW4gumVremTree9kee7nOenkeaKgOmCrueuseWFrOWPuDESMBAGA1UE
CwwJ5oqA5pyv6YOoMQswCQYDVQQGEwJDTjEPMA0GA1UEBwwG5Lit5bGxMQ8wDQYD
VQQIDAblub/kuJwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvbzUA
3+Fv/0TglHB7Ung+N+1LBx+NcHYIj2b0Ag8JUuXNQ8BP7CATNjpQMMbLzlRLEimw
3vcrgxvE9u9qfmuZZzskXjWwevHDMXe0V7FqMdLWXhVcN4C0sx6JGIKx1qm+8zzb
fCH2Y8ZBoQHogwmagJ5gzx8SUX6vLkS6L1vAl+HqGNQNDWK0JTE+Pe3bz1NaIN2u
Vf3vLIS5dasD8rSwgpBuEU8jdzN6oVGBZ13D8ZrJWNagemqb6fb1gEMkVyrZSEGs
Rm2+pAESavpsOonMZbB7zFxI6A+DtYWz94ikONGod3Du0fzDxWzkXg13a0fKIGs1
HJFbt9MA6TKBkIlbAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEAMV4WsF0t8Sm2
ApfELS2wxdqcHwB2zaAXhS5MxRUD3yIAhLP56fD39BUdfLzWF7NcKG6n3nb8f4OZ
18iB/nLYMQyUbV2hrIgw9PuTp6Nu/YFiSTv8COEFT/gZyKn1DKCQe9JEI/P08G2Q
rdzrKqR4jC5H1pWiCKpeetacGpxbPxshCGmZpgoGN/peF9O+PT0Y1dbTwNP6K/sw
S3q8ZBp1YsFHxXdRRck0trYJw0u0nujGvlpENiAWYLmqrzM9tfkCEs/+AuaYiNZo
0C9W5xOQiuTR58KitwWKaaRiy/U1swVQoyo4vGSxUXCBkqbz0+AmfNjj1wkNh9vx
r67v9l83yQ==
-----END CERTIFICATE REQUEST-----
 

CSR里面包含什么信息呢?

名称 介绍 例子
CommonName(CN) 这里填写的是你的域名,通常是一个完全限定域名(FQDN),就是你在浏览器地址栏中要实现HTTPS访问的域名
如果你申请的代码签名证书,这填写的是你的企业名称
如果你申请的邮件签名证书,这里填写的是邮箱地址
www.sslaaa.com
*.sslaaa.com
企业名称 与营业执照上一致的企业名称 或 组织名称 中山市镭铭网络科技有限公司
部门名称 使用证书的部门 技术部
城市 企业所在的城市 中山市
企业所在的省 广东省
国家/地区 企业所在国家或地区,这里填写两位字母的国家代码 CN
US
公钥 证书将使用CSR中包含的公钥 生成私钥的时候自动创建

 

 

如何生成CSR?

 

1. 比较常用的是通过OpenSSL生成CSR

生成CSR 的OpenSSL命令如下

openssl req -new -newkey rsa:2048 -nodes -out server.csr -keyout server.key

这将生成CSR文件 ,文件名为 server.csr 和 私钥文件 server.key  

 

2. 你也可以通过镭铭网络生成CSR工具

在线生成CSR和私钥 

填写域名等信息,在线自动生成CSR(证书签名请求),用于申请SSL证书

生成CSR

 

3. 你还可以在要安装证书的服务器上生成CSR

根据服务器环境的不同,生成CSR的方式也随之不同,可以参考 在服务器上生成CSR 

 

生成CSR后,重要的事情是要保存CSR对应的私钥,没有私钥,你申请的证书也无法安装使用

 

如何查看CSR所包含的信息 - CSR解码

如果你用记事本打开CSR文件,你看到的是一段base64编码的字符,这不是我们想要看到的,通常我们可以使用OpenSSL命令读取CSR所包含的信息

openssl req -in server.csr -noout -text

 

CSR的密钥长度

从2016年开始证书颁发机构仅签发密钥长度大于2048位的SSL证书,所以你生成CSR的时候,如果选择使用的密钥长度小于2048位,例如 1024 ,将导致证书申请失败 

 

什么时候使用CSR?

在提交证书订单的时候使用CSR,提交订单的时候有一个文本框要你粘贴CSR代码,在你粘贴CSR代码后,我们的网站程序会自动获取CSR内所包含的信息,并在你提交订单后,把包括CSR,域名、验证方式,企业信息等一起发送给证书颁发机构,证书颁发机构将根据这些信息在完成认证后签发SSL证书

Image
什么是CSR
在提交订单的时候要求填写CSR