什么是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和私钥
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证书