随着 http 流量时不时的可能会被奸商强奸,各大网站都陆续支持了 https 这种安全的连接方式,
通过以下几个步骤给自己的网站用上 https
- 生成 cert key
cert key 有收费,现在也有免费,比如 letsencrypt,只不过这个要每隔 90 天更新一次 cert key(也就一条命令的事). 使用 letsencrypt 时,如果要网站同时支持 www 和 none-www 这种前缀的访问,记得在 conf 里的 domains 多写一下,比如我的 jialinwu.confcertbot certonly -c [path to]/jialinwu.com.conf
- 配置 nginx
配置 nginx 主要是处理 443 这个 https 服务端口的 conf, 可通过这个工具 来生成快速生成模板 conf, 再根据自己之前生成 cert key 的实际情况稍加替换一下其中的 path, 像我参考了文献 1 中的去配置时,还多加弄一个root_ca_cert_plus_intermediates
这样的东西
把 80 端口的请求服务重写向到 443 端口的服务中去 - 配置 cert key renew 定时任务
像我用了 letsencrypt 这种免费的服务,至少每隔 90 天要 renew 一下 cert key
renew 之后,记得把 nginx reload 一下
配置文件参考
-
- jialinwu.conf
domains =jialinwu.com, www.jialinwu.com rsa-key-size = 2048 email = win27v@gmail.com text = True authenticator = webroot webroot-path = /usr/share/nginx/html/blog
- jialinwu.conf
nginx
- 80.conf
server { listen 80; server_name www.jialinwu.com jialinwu.com; return 301 https://$host$request_uri; }
443.conf
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name jialinwu.com www.jialinwu.com; # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate ssl_certificate /etc/letsencrypt/live/jialinwu.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/jialinwu.com/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits ssl_dhparam /etc/nginx/ssl/dhparam.pem; #... 此处部分省略 ssl_trusted_certificate /etc/letsencrypt/live/jialinwu.com/root_ca_cert_plus_intermediates; resolver 104.224.132.128; root /usr/share/nginx/html/blog; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
- 80.conf
referrence