安装和部署 SSL 证书是为了让网站支持 HTTPS,增强数据传输的安全性。以下是详细的安装和部署步骤,包括获取证书、配置服务器和验证部署。
SSL 证书的准备工作
选择 SSL 证书类型:
免费证书:例如 Let’s Encrypt,完全免费,适合个人或中小型网站。
付费证书:例如 Digicert、GlobalSign、Sectigo 等,提供更高级别的信任认证(如 EV 证书,显示绿色公司名称)。
购买或申请证书:
如果使用付费证书,需在证书颁发机构(CA)购买。
如果使用免费证书,推荐使用 Let’s Encrypt。
生成 CSR(Certificate Signing Request,证书签名请求):
CSR 文件包含
密钥和站点信息,用于申请证书。
可以通过工具(如 OpenSSL)生成 CSR。
验证域名所有权,CA 通常要求域名所有者通过以下方式验证域名:
DNS 验证:在域名的 DNS 配置中添加 TXT 记录。
HTTP 验证:在服务器上放置验证文件。
邮箱验证:通过域名管理员邮箱完成验证。
生成 CSR 文件并获取证书
有效的“CSR”(证书签发请求)才能配置申请域名 SSL 证书。可以访问:http://chinassl.net/ssltools/generator-csr.html 生成一个,请注意创建csr时生成的key文件请保存好,用于后续证书使用。
除了以上方法,还可采用openssl方法:
1. 生成私钥和 CSR 文件
使用 OpenSSL 命令生成私钥和 CSR 文件:
# 生成私钥(private.key) openssl genrsa -out private.key 2048 # 生成 CSR 文件(certificate.csr) openssl req -new -key private.key -out certificate.csr
在生成 CSR 时,你需填写以下信息:
Country Name (两位国家代码 ):如 CN。 State or Province Name:如 Guangdong。 Locality Name (城市):如 Guangzhou。 Organization Name (组织名):如 MyCompany Inc.。 Organizational Unit Name (部门名):如 IT. Common Name (域名):如 example.com。
2. 提交 CSR 文件并完成验证
将 certificate.csr 文件提交给证书颁发机构(CA)。
完成域名验证后,CA 会签发证书文件。
安装和部署 SSL 证书
SSL 证书的安装过程取决于所用的 Web 服务器类型。以下是主流服务器的配置方法:
1. Nginx
1.1 上传证书文件
将以下文件上传到服务器:
证书文件(通常是 .crt 或 .pem 文件)。
私钥文件(private.key,在生成 CSR 时创建)。
中间证书(CA 提供的中间证书,通常是 .crt 文件)。
建议将这些文件放置在 /etc/nginx/ssl/ 目录下:
mkdir -p /etc/nginx/ssl cp private.key /etc/nginx/ssl/ cp certificate.crt /etc/nginx/ssl/ cp intermediate.crt /etc/nginx/ssl/
1.2 配置 Nginx
编辑配置文件/etc/nginx/sites-available/default 或对应的站点配置文件:
server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/certificate.crt; ssl_certificate_key /etc/nginx/ssl/private.key; ssl_trusted_certificate /etc/nginx/ssl/intermediate.crt; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { root /var/www/html; index index.html; } } # 重定向 HTTP 到 HTTPS server { listen 80; server_name example.com; return 301 https://$host$request_uri; }
1.3 测试并重启 Nginx
测试配置是否正确:
nginx -t
如果没有错误,则重启 Nginx:
systemctl restart nginx
2. Apache
2.1 上传证书文件
将证书文件、私钥文件和中间证书上传到服务器,通常存放在 /etc/apache2/ssl/:
mkdir -p /etc/apache2/ssl cp private.key /etc/apache2/ssl/ cp certificate.crt /etc/apache2/ssl/ cp intermediate.crt /etc/apache2/ssl/
2.2 配置 Apache
编辑站点配置文件,例如 /etc/apache2/sites-available/example.conf:
<VirtualHost *:443> ServerName http://example.com DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /etc/apache2/ssl/certificate.crt SSLCertificateKeyFile /etc/apache2/ssl/private.key SSLCertificateChainFile /etc/apache2/ssl/intermediate.crt <Directory /var/www/html> AllowOverride All </Directory> </VirtualHost> # 重定向 HTTP 到 HTTPS <VirtualHost *:80> ServerName http://example.com Redirect permanent / https://example.com/ </VirtualHost>
2.3 启用 SSL 模块并重启 Apache
启用 SSL 模块和 HTTPS 站点配置:
a2enmod ssl a2ensite example.conf systemctl restart apache2
3. 使用 Let’s Encrypt 自动化部署
如果使用的是 Let’s Encrypt,可以通过工具 Certbot 自动生成和部署证书。
3.1 安装 Certbot
根据服务器类型安装 Certbot:
# Nginx apt install certbot python3-certbot-nginx # Apache apt install certbot python3-certbot-apache
3.2 自动生成 SSL 证书
运行以下命令,Certbot 会自动完成证书申请和配置:
# Nginx certbot --nginx -d http://example.com -d http://www.example.com # Apache certbot --apache -d http://example.com -d http://www.example.com
3.3 自动更新证书
Let’s Encrypt 的证书有效期为 90 天,建议设置自动更新任务:
crontab -e
在文件中添加以下行:
0 3 * * * certbot renew --quiet
验证 SSL 部署是否成功
1. 检查 HTTPS 是否可用
访问 https://example.com,确认是否能正常打开,且浏览器显示安全锁图标。
2. 使用 SSL 检测工具
在线检测工具:SSL Labs(https://www.ssllabs.com/ssltest/)
可以检测证书是否正确安装、是否包含中间证书、TLS 配置是否安全等。
命令行检测:
openssl s_client -connect http://example.com:443
常见问题及解决
1. 浏览器提示“不安全”或“证书无效”
检查是否安装了中间证书(CA 提供的链文件)。
确保证书的域名(Common Name 或 SAN)与访问的域名一致。
2. HTTP 没有重定向到 HTTPS
确认是否配置了重定向规则
Nginx:return 301 https://$host$request_uri; Apache:Redirect permanent / https://example.com/
3. 证书过期
如果使用 Let’s Encrypt,确保配置了自动更新任务(certbot renew)。
手动更新证书时,重新提交 CSR 文件申请新证书。
小结
安装和部署 SSL 证书的流程可以分为以下几个步骤:
获取证书:通过 CA 申请或使用 Let’s Encrypt。
配置服务器 :为 Nginx 或 Apache 配置证书文件。
验证部署:通过浏览器或检测工具确认 HTTPS 是否正常工作。
通过正确的部署,可以让网站支持 HTTPS,提升安全性和用户信任,同时改进搜索引擎排名。
隐藏内容,登录查看。
http://www.savh.cn/thread-1629.htm
转载请注明:Savh.Cn 发表