下载证书

  1. 阿里云的单域名免费证书需要自己在购买菜单点点点才能点出来,优秀的产品经理

image.png

  1. 然后在控制台 ssl 模块进行证书申请即可
  2. 开放安全组 443 端口

nginx 配置

  • 需要编译带上 --with-http_ssl_module
  • 安装 openssl

    apt-get install openssl libssl-dev

  1. ./configure --prefix=/home/soft/nginx_demo
  2. --with-http_ssl_module

server 字段

  • 监听 443

    指令

  • ssl | Syntax: | **ssl**on|off; | | :—- | —- | | Default: | ssl off; | | Context: | http, server | | Desc: | 是否 开启 ssl |

  • ssl_certificate | Syntax: | **ssl_certificate**file; | | :—- | —- | | Default: | — | | Context: | http, server | | Desc: | 设置证书文件路径 |
  • ssl_certificate_key | Syntax: | **ssl_certificate_key**file; | | :—- | —- | | Default: | — | | Context: | http, server | | Desc: | 设置密钥文件路径 |

优化

  1. keepalive 优化
  2. 设置 ssl session 缓存
  • ssl_session_cache | Syntax: | **ssl_session_cache**off|none| [builtin[:size]] [shared:name:size]; | | :—- | —- | | Default: | ssl_session_cache none; | | Context: | http, server | | Desc: | 设置关于存储会话参数的缓存的类型和大小 | | Params: |
    - off 严格禁止使用会话缓存:nginx显式地告诉客户端会话可能不会被重用
    - none 不允许使用会话缓存:nginx告诉客户端可以重用会话,但实际上并不在缓存中存储会话参数。
    - builtin 在OpenSSL中构建的缓存;仅供一个 worker process 使用。缓存大小在会话中指定。如果没有给出大小,则等于20480个会话。使用内置缓存会导致内存碎片。
    - shared 设置在所有 worker process 之间的共享缓存。缓存大小以字节为单位指定;1兆字节可以存储大约4000个会话。每个共享缓存应该有一个任意的名称。具有相同名称的缓存可以在多个虚拟 server 中使用。
    |
  • ssl_session_timeout
Syntax: **ssl_session_timeout**time;
Default: ssl_session_timeout 5m;
Context: http, server
Desc: 指定客户端重用会话参数的时间

附录

  • 配置文件如下 ```json server {

    1. listen 80;
    2. server_name www.nekosighed.com;
    3. location / {
    4. rewrite ^(.*)$ https://$host$1 permanent; #将所有http请求通过rewrite重定向到https。
    5. }

    } server {

    1. listen 443 ssl;
    2. server_name www.nekosighed.com;
    3. # 开启 https
    4. # ssl on;
    5. ssl_certificate /home/soft/nginx_demo/cert/www.nekosighed.com.pem;
    6. ssl_certificate_key /home/soft/nginx_demo/cert/www.nekosighed.com.key;
    7. # session cache
    8. ssl_session_cache shared:ssl_session_key:10m;
    9. ssl_session_timeout 10m;
    10. # 阿里云配置中额外添加的
    11. #ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
    12. #ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
    13. #ssl_prefer_server_ciphers on;
    14. location / {
    15. root static;
    16. index index.html index.htm;
    17. }

    }

```