1:获取 SSL/TLS 证书
从证书颁发机构(CA)购买 SSL 证书,或使用 Let’s Encrypt 等免费服务获取。
生成证书签名请求(CSR)并提交给 CA。
一旦申请被批准,CA 将提供 SSL 证书。
2:安装 SSL 证书
将 SSL 证书文件和私钥安装到服务器上。
证书通常有两个文件:一个是证书文件(.crt),另一个是私钥文件(.key)。
3:配置服务器以使用 HTTPS
根据服务器软件(如 Apache、Nginx 等),配置服务器以监听 HTTPS 端口(443)并使用 SSL 证书。
以下是一个 Nginx 的配置示例:
server {
listen 443 ssl;
keepalive_timeout 70;
server_name www.example.com;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
# 其他 SSL 配置选项...
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:...';
# 路由和资源配置...
}
4:确保使用 HSTS
使用 HTTP Strict Transport Security(HSTS)头部来告诉浏览器仅通过 HTTPS 提供服务。
这可以通过在服务器配置中添加 Strict-Transport-Security 头部来实现。
5:重定向 HTTP 请求到 HTTPS
配置服务器以重定向所有 HTTP 请求到 HTTPS,以确保所有通信都是安全的。
server {
listen 80;
server_name www.example.com;
return 301 https://$server_name$request_uri;
}
6:更新网站资源链接
确保网站上的所有资源链接(如图片、CSS、JavaScript 文件等)都使用 HTTPS URL。
7:配置安全的 Cookie
如果你的应用使用 Cookie,确保它们是安全的。设置 Secure 和 HttpOnly 属性。
document.cookie = "username=example; Secure; HttpOnly; Path=/";
8:使用内容安全策略(CSP)
实施 CSP 来减少 XSS 攻击的风险。
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com;";
9:测试 HTTPS 配置
使用浏览器访问网站,检查地址栏是否显示安全锁标志。
使用在线工具(如 SSL Labs’ SSL Test)来评估你的 SSL 配置。
10:更新 API 和服务端点
确保所有的 API 和服务端点都更新为 HTTPS。
代码示例(Node.js 使用 Express 框架):
const express = require('express');
const https = require('https');
const fs = require('fs');
const app = express();
// 加载 SSL 证书和私钥
const options = {
key: fs.readFileSync('/path/to/your/private.key'),
cert: fs.readFileSync('/path/to/your/certificate.crt')
};
// 创建 HTTPS 服务器
https.createServer(options, app).listen(443, () => {
console.log('HTTPS server running on https://localhost');
});
// 应用路由和中间件...