文档中心
SSL璇佷功CSR閮ㄧ讲鍒癢eb鏈嶅姟鍣ㄥ叏娴佺▼璇﹁В浠庣敓鎴愬埌閰嶇疆涓€姝ュ埌浣?txt
时间 : 2025-09-27 16:38:27浏览量 : 2
什么是SSL证书和CSR?

在开始之前,让我们先搞清楚几个基本概念。SSL证书就像是你网站的"身份证",它告诉访问者:"嘿,我是真实的网站,不是假冒的"。而CSR(Certificate Signing Request,证书签名请求)则是你向证书颁发机构(CA)申请这个"身份证"时需要提交的"申请表"。
想象一下你去办护照:CSR就是你填写的护照申请表,而SSL证书就是最终发给你的护照。没有这个申请表,你就拿不到正式的护照(SSL证书)。
第一步:生成CSR文件
1.1 使用OpenSSL生成私钥和CSR
大多数情况下我们会使用OpenSSL这个工具来生成CSR。以下是一个典型的命令:
```bash
openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr
```
让我解释一下这个命令的每个部分:
- `req -new`:创建一个新的证书请求
- `-newkey rsa:2048`:同时生成一个新的2048位的RSA私钥
- `-nodes`:不对私钥进行加密(这样服务器启动时不需要输入密码)
- `-keyout yourdomain.key`:将生成的私钥保存为yourdomain.key文件
- `-out yourdomain.csr`:将生成的CSR保存为yourdomain.csr文件
实际案例:假设我们为www.example.com申请证书,执行命令后会提示输入一些信息:
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example Inc.
Organizational Unit Name (eg, section) []:IT Dept
Common Name (e.g. server FQDN or YOUR name) []:www.example.com
Email Address []:admin@example.com
特别注意:"Common Name(CN)"必须填写你要保护的域名(如www.example.com),这是最常见的错误来源!
1.2 验证生成的CSR内容
生成了CSR后,最好检查一下内容是否正确:
openssl req -in yourdomain.csr -noout -text
这会显示CSR的详细信息,你应该确认:
1. Subject中的CN是正确的域名
2. Key长度是2048位(或你指定的长度)
3. 没有额外的属性可能引起问题
第二步:提交CSR给CA并获取证书
2.1 选择CA并提交申请
现在你需要选择一个证书颁发机构(CA),如DigiCert、GlobalSign、Let's Encrypt等。每家CA的流程略有不同,但基本步骤类似:
1. 登录CA网站开始申请流程
2. 选择适合的证书类型(DV、OV或EV)
3. 粘贴或上传你的CSR文件内容
4. 完成验证过程(DV通常只需验证域名所有权)
小技巧:对于测试环境或预算有限的情况,可以使用Let's Encrypt提供免费证书。他们的certbot工具甚至可以自动完成整个流程!
2.2 CA验证过程
根据选择的验证级别不同:
- DV(域名验证):只需证明你控制该域名,通常通过DNS记录或特定URL放置验证文件完成。
例如CA可能会要求你在网站的/.well-known/pki-validation/目录下放置一个特定内容的文本文件。
- OV(组织验证):除了域名控制外,还需要验证组织真实性。
可能需要提供营业执照等文件。
- EV(扩展验证):最严格的验证,会详细核查组织信息。
常用于银行、电商等高安全性要求的网站。
2.3 获取签发的证书
通过所有验证后,CA会签发你的SSL证书。通常会通过邮件发送给你或在账户中提供下载。你可能会收到以下几种格式:
1. `.crt`或`.pem`格式的主证书文件
2. CA的中级/根证书链文件(通常名为`ca-bundle.crt`)
3. PKCS
7格式(`.p7b`)或PKCS#12格式(`.pfx`)的打包文件
第三步:部署SSL证书到Web服务器
现在到了最关键的部分——将获取到的SSL证书部署到你的Web服务器上。下面我会介绍几种常见服务器的配置方法。
3.1 Apache HTTP服务器配置
Apache是最常见的Web服务器之一。假设你已经有了:
- `yourdomain.key` (之前生成的私钥)
- `yourdomain.crt` (从CA获得的主证书)
- `ca-bundle.crt` (从CA获得的中间/根证书链)
编辑Apache的SSL配置文件(通常在/etc/httpd/conf.d/ssl.conf或/etc/apache2/sites-enabled/default-ssl.conf):
```apacheconf
ServerName www.example.com
SSLEngine on
SSL协议配置(禁用不安全的旧版本)
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSL密码套件配置(确保强加密)
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...
SSL会话缓存优化性能
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSL压缩关闭防止CRIME攻击
SSLCompression off
HSTS头增强安全性(可选但推荐)
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
OCSP装订提高性能(可选)
SSLUseStapling on
SSL密钥和证书路径配置(MOST IMPORTANT!)
SSLCertificateFile /path/to/yourdomain.crt
主证书记录位置
SSLCertificateKeyFile /path/to/yourdomain.key
私钥位置
SSLCertificateChainFile /path/to/ca-bundle.crt
中级证书记录位置
配置完成后测试并重启Apache:
apachectl configtest && systemctl restart apache2
Debian/Ubuntu系统
或者
apachectl configtest && systemctl restart httpd
RHEL/CentOS系统
3.2 Nginx服务器配置
Nginx以其高性能著称。它的SSL配置更简洁但同样强大:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate /path/to/fullchain.pem;
主证书记录+中级证书记录合并的文件
ssl_certificate_key /path/to/yourdomain.key;
私钥位置
安全协议设置
ssl_protocols TLSv1 TLSv1 TLSv TLSv;
禁用不安全协议版本
安全密码套件设置
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256...';
现代加密套件
ssl_prefer_server_ciphers on;
优先使用服务端加密套件
ssl_session_cache shared:SSL MB; 会话缓存提高性能
add_header StrictTransportSecurity "max-age=63072000..." always; HSTS头增强安全性
}
测试并重载Nginx配置:
```bash nginx-t && nginx-s reload ```
IIS服务器的安装方法
对于Windows Server上的IIS:
在IIS管理器中:
选择服务器节点→双击"服务器证书记录"
点击右侧"完成证书记录请求"
浏览选择从CA获得的.p7b或.crt文件完成安装.
然后进入网站绑定→添加HTTPS绑定→选择已安装的证书记录.
第四步:测试与优化
部署完成后必须进行全面测试:
使用Qualys SSL Labs提供的免费在线测试工具:
https://www.ssllabs.com/ssltest/
检查项目包括:
协议支持情况(TLS是否过旧)
加密套件强度(HSTS是否生效)
OCSP装订状态等.
常见问题排查:
如果遇到浏览器警告说"此连接不是私密连接",可能原因有:
中间证书记录未正确安装(最常见)
系统时间不正确导致证书记录被认为过期.
域名不匹配(CN与访问URL不一致).
第五步:维护与更新
别忘了SSL证书记录是有有效期的!通常为年需要续期.
建议设置日历提醒在到期前30天开始续期流程.
现代自动化工具如certbot可以自动续期Let's Encrypt证书记录.
定期检查加密设置确保不被新发现的漏洞影响.
一下完整流程:
生成密钥和CSR→提交给CA→通过验证→获取签发的证书记录→部署到web服务器→全面测试→定期维护更新.
遵循这些步骤你就可以为自己的网站实现安全的HTTPS连接了!
TAG:ssl证书csr部署到web服务器,ssl证书应该放在哪个文件夹,ssl证书 pem,ssl证书部署后打不开https的原因,ssl证书安装到域名上还是服务器上,ssl证书 ca