nginx证书配置指南

常用参数

  • ssl_certificate
    • 服务器证书
  • ssl_certificate_key
    • 服务器私钥
  • sl_session_cache shared:SSL:10m;
    • 设置ssl/tls会话缓存的类型和大小
    • shared
      • 所有工作进程之间共享缓存:缓存大小以字节为单位指定;一兆字节可以存储大约4000个session。每个共享缓存都应该有一个任意名称。具有相同名称的缓存可以用于多个虚拟服务器
    • off
      • 严禁使用session缓存:nginx明确告诉客户端session可能不会被重用
    • none
      • session缓存的使用被禁止:nginx告诉客户端session可能会被重用,但实际上并不会将session参数存储在缓存中
    • builtin
      • 在OpenSSL中构建的缓存:仅由一个工作进程使用。缓存大小在session中指定。如果没有给出大小,则等于20480个会话
  • ssl_session_timeout
    • 客户端可以重用会话缓存中ssl参数的过期时间
  • ssl_protocols
    • 用于启动特定的加密协议,nginx在1.16.x版本默认是ssl_protocols TLSv1 TLSv1.1 TLSv1.2,TLSv1.1与TLSv1.2要确保OpenSSL >= 1.0.1 ,SSLv3 现在还有很多地方在用但有不少被攻击的漏洞
  • ssl_ciphers
    • 选择加密套件,不同的浏览器所支持的套件可能会不同。这里指定的是OpenSSL库能够识别的写法,你可以通过 openssl -v cipher 'RC4:HIGH:!aNULL:!MD5'(后面是你所指定的套件加密算法) 来看所支持算法
    • 加密套件之间用冒号分隔,加密套件前有感叹号的表示必须废弃
  • ssl_prefer_server_ciphers on
    • 设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件

配置演示

注意:nginx的ssl配置在默认配置文件注释里是可以找到的

server {
    listen 443 ssl;
    server_name  _;

    ssl_certificate      /opt/ssl/cert.pem;
    ssl_certificate_key  /opt/ssl/key.pem;
    
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;	
    ssl_session_cache    shared:SSL:10m;  
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

		...
}
posted @ 2022-03-02 20:31  longtds  阅读(792)  评论(0编辑  收藏  举报