HTTPS 服务器

基本配置

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 端口,启用 SSL
  • ssl_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 加密套件。

HTTP 重定向到 HTTPS

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 重定向,重定向到 HTTPS

HTTP 重定向到 HTTPS 原理return 指令用于返回响应,可以指定状态码和响应体。return 301 https://$host$request_uri 指令用于返回 301 重定向,重定向到 HTTPS。

配置说明

指令说明示例
listen 443 ssl监听 443 端口,启用 SSLlisten 443 ssl
ssl_certificateSSL 证书文件ssl_certificate www.example.com.crt
ssl_certificate_keySSL 私钥文件ssl_certificate_key www.example.com.key
ssl_protocolsSSL 协议版本ssl_protocols TLSv1 TLSv1.1 TLSv1.2
ssl_ciphersSSL 加密套件ssl_ciphers HIGH:!aNULL:!MD5
ssl_prefer_server_ciphers优先使用服务器加密套件ssl_prefer_server_ciphers on

SSL 协议版本

SSL 协议版本分为以下几种:

协议版本说明安全性
SSLv2SSL 2.0不安全
SSLv3SSL 3.0不安全
TLSv1TLS 1.0不安全
TLSv1.1TLS 1.1不安全
TLSv1.2TLS 1.2安全
TLSv1.3TLS 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 加密套件是一种加密算法,用于加密和解密数据。SSL 加密套件包括对称加密算法、非对称加密算法、哈希算法等。