server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
...
}
基本配置说明:
listen 443 ssl:监听 443 端口,启用 SSLssl_certificate:指定 SSL 证书文件ssl_certificate_key:指定 SSL 私钥文件ssl_protocols:指定 SSL 协议版本ssl_ciphers:指定 SSL 加密套件基本配置原理:
listen 443 ssl 指令用于监听 443 端口,启用 SSL。ssl_certificate 指令用于指定 SSL 证书文件,ssl_certificate_key 指令用于指定 SSL 私钥文件。ssl_protocols 指令用于指定 SSL 协议版本,ssl_ciphers 指令用于指定 SSL 加密套件。
server {
listen 80;
server_name www.example.com example.com;
return 301 https://$host$request_uri;
}
HTTP 重定向到 HTTPS 说明:
return 301 https://$host$request_uri:返回 301 重定向,重定向到 HTTPSHTTP 重定向到 HTTPS 原理:
return 指令用于返回响应,可以指定状态码和响应体。return 301 https://$host$request_uri 指令用于返回 301 重定向,重定向到 HTTPS。
| 指令 | 说明 | 示例 |
|---|---|---|
listen 443 ssl | 监听 443 端口,启用 SSL | listen 443 ssl |
ssl_certificate | SSL 证书文件 | ssl_certificate www.example.com.crt |
ssl_certificate_key | SSL 私钥文件 | ssl_certificate_key www.example.com.key |
ssl_protocols | SSL 协议版本 | ssl_protocols TLSv1 TLSv1.1 TLSv1.2 |
ssl_ciphers | SSL 加密套件 | ssl_ciphers HIGH:!aNULL:!MD5 |
ssl_prefer_server_ciphers | 优先使用服务器加密套件 | ssl_prefer_server_ciphers on |
SSL 协议版本分为以下几种:
| 协议版本 | 说明 | 安全性 |
|---|---|---|
| SSLv2 | SSL 2.0 | 不安全 |
| SSLv3 | SSL 3.0 | 不安全 |
| TLSv1 | TLS 1.0 | 不安全 |
| TLSv1.1 | TLS 1.1 | 不安全 |
| TLSv1.2 | TLS 1.2 | 安全 |
| TLSv1.3 | TLS 1.3 | 最安全 |
SSL 协议版本原理: SSL 协议版本分为 SSLv2、SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3,其中 SSLv2、SSLv3、TLSv1、TLSv1.1 不安全,TLSv1.2 安全,TLSv1.3 最安全。
SSL 加密套件是一种加密算法,用于加密和解密数据。
SSL 加密套件原理: SSL 加密套件是一种加密算法,用于加密和解密数据。SSL 加密套件包括对称加密算法、非对称加密算法、哈希算法等。