一,配置https证书的意义

https协议是由SSL+http协议构建的安全协议,支持加密传输和身份认证,

安全性比http要更好,因为数据的加密传输,更能保证数据的安全性和完整性

例如:不使用https,网站就比较容易被网络劫持,

网络劫持会导致页面上出现一些垃圾广告,或被引导到无关的网站,

使用https可以避免这些情况

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,查看ssl模块默认是否已编译

[root@centos8 ~]# /usr/local/soft/nginx-1.18.0/sbin/nginx -V
nginx version: lws/1.18.0
built by gcc 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)
built with OpenSSL 1.1.1c FIPS 28 May 2019
TLS SNI support enabled
configure arguments: --prefix=/usr/local/soft/nginx-1.18.0 --with-http_stub_status_module --with-http_ssl_module

编译参数中已包含了http_ssl_module这个模块

三,https证书的获取:

1,购买:

可以从国内的证书代理机构购买,

国外的证书大厂包括:

GlobalSign

geotrust

DigiCert等等

2,免费证书:

可以从letsencrypt获取免费的证书,配置起来稍微麻烦一点,

优点是免费

官方网站:

https://letsencrypt.org/

四,nginx配置使用ssl证书

1,配置启用ssl

#ssl on:启用ssl

#ssl_certificate        https证书文件

#ssl_certificate_key  证书申请者的私钥文件

ssl on;
ssl_certificate /data/certs/ssl2019/ssl.crt;
ssl_certificate_key /data/certs/ssl2019/ssl.key;

注意:证书文件的安全非常重要,

不要放到网站虚拟主机的root目录下,

避免被暴露到公网上

2,ssl的优化:

#ssl_session_cache:配置共享会话缓存大小

#ssl_session_timeout:配置会话超时时间

配置例子:

ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;

ssl的session的作用:

每次新的TLS连续都需要握手(因为创建共享的加密密钥),在TCP三次握手之上还需要多两个来回,

重用一个Session,可以减少一个来回,减少cpu的计算量

ssl_session_cache的默认值是none

它的取值包括:

1,off:不使用session缓存: nginx告诉客户端session可能不会被重用
2,none:不使用session缓存:nginx告诉客户端session可能会被重用,
但并不会把session存储在缓存中
3,builtin:缓存只供一个工作进程使用
4,shared: 所有工作进程之间共享缓存

说明:ssl 的session cache大小:1M字节可以存储大约4000个session,

可以根据自己网站的并发情况计算一个合适的数字

说明:建议把session的配置放到http段而不是server段,共享可以提升性能

五,强制浏览器跳转https协议访问

当用户访问到http网站时,直接rewrite到https站即可

server {
listen 80;
server_name dev.lhdtest.com;
rewrite ^(.*) https://$server_name$1 permanent;
}

六,查看nginx版本

[root@centos8 ~]# /usr/local/soft/nginx-1.18.0/sbin/nginx -v
nginx version: nginx/1.18.0

最新文章

  1. Markdown 基本入门使用
  2. DOM扩展札记
  3. Zookeeper--Zookeeper是什么
  4. eclipse-搭建maven的war项目集合spring注解方式
  5. cmd for备忘
  6. js中的引用类型-object
  7. JavaScript过滤除连续的数字
  8. maven pox.xml 设置主入口配置节点
  9. click 绑定(一)无参数的click 事件绑定
  10. App_Store - IOS应用审核的时隐私政策模板
  11. 【转】fread函数和fwrite函数
  12. MYSQL Model报错:指定的存储区提供程序在配置中找不到 的解决
  13. IE11,Chrome65.0.3325.146,Firefox58的webdriver驱动下载,并用selenium驱动来实现自动化测试
  14. 转 Eclipse快捷键调试大全
  15. Spring中资源的加载ResourceLoader
  16. Android、JavaScript、WebView之间的交互学习
  17. pytorch中检测分割模型中图像预处理探究
  18. Promise,Generator(生成器),async(异步)函数
  19. 【Java】第一讲:Java基础
  20. python 有道翻译

热门文章

  1. Java 合并、拆分PPT幻灯片
  2. Sql Server之ORDER BY不规则排序.如:中文月份排序
  3. C#开发PACS医学影像处理系统(十七):2D处理之影像旋转和翻转
  4. Docker跨主机通信(九)
  5. 1.7Hadoop-HDFS命令
  6. 谈谈 Java 中的那些“琐”事
  7. 2018尚硅谷最新SpringCloud免费视频教程
  8. 注解在Spring中的运用(对象获取、对象单例/多例、值的注入、初始化/销毁方法、获取容器)
  9. git将本地仓库中的文件上传到远程仓库
  10. jdbc原理与步骤