用户在申请SSL证书,生成CSR(证书签名请求)时,申请细节至关重要。一个微小的错误可能导致证书申请被拒、安全漏洞或配置失败。下面写一下10个注意的关键细节及其避免错误的方法,帮助你一次性申请成功:

1.  私钥与密钥长度

错误:使用弱密钥(如RSA  1024位)或重复使用旧私钥。

正确做法:

RSA密钥长度至少2048位(推荐3072或4096位以应对未来需求)。

ECC密钥优先选择secp384r1曲线。

每次申请新证书时生成新私钥(旧证书续期除外)。

bash

示例:生成强RSA私钥

openssl  genrsa  -out  example.com.key  3072

2.  主题字段格式规范

错误:字段格式错误(如包含无效字符)、顺序随意或省略关键字段。

正确做法:

国家(C):使用ISO  3166-1二位字母代码(如CN/US)。

州/省(ST):填写全称,避免缩写(如Zhejiang而非ZJ)。

通用名称(CN):

若为单域名证书,填写完整域名(如www.example.com)。

若为通配符证书,格式为*.example.com。

企业证书需准确填写组织名称(O),且与法律实体名一致。

3.  主题备用名称(SAN)扩展

错误:仅依赖CN字段,忽略SAN扩展,导致浏览器警告。

正确做法:

即使单域名证书,也将域名同时填入CN和SAN。

多域名证书需在SAN中列出所有域名(包括CN域名)。

bash

在配置文件中添加SAN

subjectAltName  =  DNS:example.com,  DNS:www.example.com,  DNS:mail.example.com

4.  密码学算法选择

错误:使用过时算法(如SHA-1)。

正确做法:

签名哈希算法选择SHA-256或更高(SHA-384/SHA-512)。

在OpenSSL配置或命令中显式指定:

bash

openssl  req  -new  -sha256  -key  example.com.key  -out  example.com.csr

5.  CSR文件完整性

错误:手动修改CSR文本、删除头尾标识或损坏格式。

正确做法:

始终通过工具生成和验证,避免手动编辑。

确保CSR包含标准的PEM格式头尾:

text

-----BEGIN  CERTIFICATE  REQUEST-----

-----END  CERTIFICATE  REQUEST-----

6.  避免在线生成器风险

错误:使用不可信的在线CSR生成器,导致私钥泄露。

正确做法:

永远在本地生成CSR和私钥。

使用系统自带工具(如OpenSSL、Keytool)或可信的本地程序。

7.  私钥保护

错误:私钥文件权限过松、存储在Web目录或共享服务器。

正确做法:

设置严格的文件权限(如600或400)。

bash

chmod  600  example.com.key

存储于受限访问目录,并通过加密存储或HSM(硬件安全模块)加强保护。

8.  配置文件的正确使用

错误:完全依赖命令行参数,导致复杂参数(如SAN、扩展属性)遗漏。

正确做法:

使用配置文件(如openssl.cnf)确保一致性,特别是多域名或企业证书。

ini

[req]

distinguished_name  =  req_distinguished_name

req_extensions  =  v3_req

[v3_req]

subjectAltName  =  @alt_names

[alt_names]

DNS.1  =  example.com

DNS.2  =  *.example.com

9.  字符编码与大小写

错误:使用非ASCII字符(如中文)、特殊符号或随意使用大小写。

正确做法:

所有字段使用ASCII字符,避免空格和特殊符号(@、#、*等)。

域名部分严格小写(部分CA自动转换,但不应依赖)。

10.  验证CSR内容

错误:未验证CSR内容就直接提交。

正确做法:

提交前解析并确认信息准确:

bash

openssl  req  -in  example.com.csr  -noout  -text

重点检查:

密钥长度与算法

主题字段与SAN

扩展属性(如密钥用法、基本约束)

快速自查清单

私钥强度≥2048位,且为新生成

CN和SAN包含所有需保护的域名

主题字段符合CA要求(无缩写、无特殊字符)

使用SHA-256或更高哈希算法

私钥权限为600,存储安全

通过openssl  req  -text验证CSR内容

避免使用在线生成工具

多域名/通配符证书已配置SAN扩展

配置文件(如有)无错误

备份私钥并删除临时文件

综合上面对细节正确处理方式,总结出部署SSL证书,CSR生成是证书部署的基础,错误往往在后续环节才暴露。严格遵循标准流程、使用本地可信工具、并始终验证输出,可节省大量调试时间,并从根本上提升服务安全性。对于企业关键系统,建议建立CSR生成规范文档和自动化脚本,减少人为失误。