Nginx添加SSL证书实现https访问
1、概述
为了安全考虑,正式上线的网站或接口,都需要使用https协议进行数据传输。
IOS、安卓、微信小程序等也都只允许访问https协议的后台接口。
2、https协议的作用
1)加密传输数据,保护数据的安全
2)证明网站真实身份,防止被钓鱼网站攻击
3)提升公司形象
3、如何实现https
企业向权威的证书颁发机构申请SSL证书。
如果使用的是云服务器,直接在云服务器的官网就能方便的申请域名和SSL证书。
SSL证书支持的WEB服务器有很多, 例如:Apache、IIS、Nginx、Tomcat 。
根据具体使用的WEB服务器,添加配置即可。
这里我们简单讲一下,如何将SSL证书,部署在Nginx中,实现https。
4、检查Nginx是否安装SSL模块
Nginx必须安装了SSL模块,才能支持SSL证书的配置。
1)进入到Nginx安装目录(例如:/usr/local/nginx/sbin),输入命令 # ./nginx -V,查看是否有SSL模块(http_ssl_module)
2)没有的话,进入Nginx安装包的目录(例如:/home/nginx-1.20.1),重新配置并编译安装Nginx
# ./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/local/nginx/nginx.pid \ --lock-path=/var/local/nginx/nginx.lock \ --error-log-path=/var/local/nginx/error.log \ --http-log-path=/var/local/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/local/nginx/client \ --http-proxy-temp-path=/var/local/nginx/proxy \ --http-fastcgi-temp-path=/var/local/nginx/fastcgi \ --http-uwsgi-temp-path=/var/local/nginx/uwsgi \ --http-scgi-temp-path=/var/local/nginx/scgi \ --with-http_ssl_module
# make && make install
3)再次在Nginx安装目录(例如:/usr/local/nginx/sbin),输入命令 # ./nginx -V,查看是否有SSL模块(http_ssl_module)
5、配置Nginx
申请下来的SSL证书文件有两个,.crt文件 和 .key文件,例如:1_www.zhuifengren.cn_bundle.crt 和 2_www.zhuifengren.cn.key。
然后在Nginx配置文件中增加如下配置,然后重新加载Ngixn即可:
server { listen 443; server_name www.zhuifengren.cn; ssl_certificate 1_www.zhuifengren.cn_bundle.crt; ssl_certificate_key 2_www.zhuifengren.cn.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
通常证书颁发机构会附上SSL证书部署的教程,不同机构的配置方式会有些许差别,根据实际情况调整即可。
6、综述
好了,到此为止,我们的网站也支持https传输协议了。
欢迎大家多多评论交流,共同进步。
原文地址:https://www.cnblogs.com/w84422/p/15233977.html
- 如何利用SOTER,1个版本内完成指纹支付开发?
- Rafy 框架 - 大批量导入实体
- Rafy 框架 - 执行SQL或存储过程
- 关于activitygroup过时,用frament替换操作
- Rafy 框架 - 为数据库生成注释
- CNN预测股票走势基于Tensorflow(思路+程序)
- 路径查找器AI
- android推荐使用dialogFrament而不是alertDialog
- 自定义圆角和园边的实现
- Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)
- 应用潜在语义分析技术将文档进行3D可视化
- 利用神经网络算法的C#手写数字识别
- fastText、TextCNN、TextRNN…这套NLP文本分类深度学习方法库供你选择
- nfc开发
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python 文件管理神器os.walk-文件指定日期整理程序
- 项目驱动-两日速成Docker日记
- python os模块 --- 操作系统接口模块
- 自动采集各种美女图片站并下载图和自动搭建图片站
- 修改其他函数的功能的神器——python装饰器
- AllTube:视频解析下载源码安装教程
- Zsh和Oh My Zsh的安装配置
- 程序猿怎么利用技术挣钱?——python量化实践
- 利用WireGuard建立IPv6隧道
- selenium爬虫相关报错解决
- 小涴熊漫画CMS:非常不错的免费开源的漫画连载系统,带采集API
- 成都电信宽带获取IPV6地址全过程
- android studio 3.6.1导入项目报错提示无法下载classpath里的内容
- Linux VPS使用命令行快速查询百度网盘提取码
- Flutter 首页必用组件NestedScrollView的示例详解