ssl新闻资讯

文档中心

SSL璇佷功CSR閮ㄧ讲鍒癢eb鏈嶅姟鍣ㄥ叏娴佺▼璇﹁В浠庣敓鎴愬埌閰嶇疆涓€姝ュ埌浣?txt

时间 : 2025-09-27 16:38:27浏览量 : 2

什么是SSL证书和CSR?

2SSL璇佷功CSR閮ㄧ讲鍒癢eb鏈嶅姟鍣ㄥ叏娴佺▼璇﹁В浠庣敓鎴愬埌閰嶇疆涓€姝ュ埌浣?txt

在开始之前,让我们先搞清楚几个基本概念。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