Nginx学习笔记之用免费的SSL证书实现一个HTTPS站点(待续)

用免费的SSL证书实现一个HTTPS站点

  • 现在有一个网站,用域名访问不是https的,通过certbot申请证书来使网站变为HTTPS网站
  • 在Centos系统下,安装下面工具
yum install python2-certbot-nginx
  • 安装完工具之后,进行配置
certbot --nginx --nginx-server-root=/usr/local/openresty/nginx/conf/ -d  自己的域名
  • certbot 后缀加上--nginx的时候,它就为nginx的conf自动执行相应的配置文件的修改
    • 通常它会默认修改/usr/loacl下的nginx 的conf下的nginx配置文件,但是演示环境不同,通过--nginx-server-root指定nginx的conf所在的路径。接下来用 -d 指定申请证书的域名。

  • 首先去获取一个证书,接下来等待验证,最后把这个证书部署到我们的nginx配置文件中

  • 接下来给我们两个选择,一个是不做任何的重定向,一个是做重定向
  • 很多时候当我们有了HTTPS站点之后,希望所有的HTTPS流量明文显示的,不安全的流全部用301,302等这样重定向的协议全部转到HTTPS站点,这里不选择重定向,输入1.

  • 再次访问,前面加了一把锁

  • 在server指令块中增加了以下五行

  • 之前加的是80端口,可以访问http协议
  • 现在增加了listen 443 ssl ,在端口上打开了443协议,接下来把公钥证书,私钥证书以及相应的路径部署好,并把一些通用的参数通过include加入加到我们的配置文件中

加入的内容是

  • 第一行:因为在ssl中最消耗性能的是握手,所以为了降低握手,增加了session_cach,并设置其大小为1m(大约为4000个HTTPS连接服务)。
    • 每个HTTPS握手建立第一次连接以后,如果断开了再次连接,在session_timeout所设置的时间段内(默认设置为一天)时,是不用再次握手的,我们可以复用之前的秘钥。
  • 第三行表示支持哪些版本的TLS协议。
  • 第四行表示nginx决定使用哪些协议与浏览器进行通信
  • 怎么决定使用哪些协议呢?
    • 就是通过下面的ssl_ciphers,这里面可以看到之前我们提到的安全套件,每一个安全套件是以分号做分隔符的,排在前面的会优先被使用。如果浏览器支持所有的安全套件时,我们会选择第一个

  • 最后,我们再看ssl_dhparam,表示我们使用非对称加密的时候,会使用怎样的参数,这些参数决定我们网络安全的加密强度。

猜你喜欢

转载自blog.csdn.net/baidu_41388533/article/details/106876905