nginx配置ssl证书实现https
前言
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
大部分小伙伴们都有自己网站, 今天分享一波如何给自己的网站配置SSL证书。
已配置
已配置证书的
未配置证书
我的简历网站就没有证书(github pages), 所以搜索栏会显示不安全, 影响访问量.
环境
- 服务器系统:CentOS 7
- 服务器IP地址:139.9.34.48
- 域名:folio.codingce.com.cn
- 服务器中nginx版本:nginx-1.16.1 (公众号回复"电脑环境"获取)
域名解析到服务器
在华为云控制台-云服务DNS-公网解析-找到需要解析的域名点“解析”,进入解析页面后选择【添加解析】按钮会弹出如下页面:
主机记录为 空 , 类型是 A – 将域名指向IPv4地址 , 记录值就是 服务器ip地址 ,确认.
申请ca证书
本人是在腾讯云的SSL证书中申请的, 跑自己的项目我们购买 免费的DV SLL证书 , 有效期是一年.
小伙伴们按照下图填写就行, 设置密码的话不要忘了哦.
进入下一步
我们选择 手动DNS验证 无误后点击确认申请.
解析一条主机记录值到我们的测试域名中 folio.codingce.com.cn
解析完成, DNS验证有延迟, 我们先给自己的服务器安装好nginx.
下载证书
列表中找到已签发的证书,下载:
记录以下内容,为了一会儿配置nginx用:
下载的文件有两个:
- 1. 1_folio.codingce.com.cn_bundle.crt
- 2. 2_folio.codingce.com.cn.key
服务器安装,配置nginx
登录到服务器, 从 http://nginx.org/en/download.html 下载稳定版nginx-1.16.1.tar.gz到/usr/local/src下解压、安装.
配置ca证书
- nginx的安装目录为:/usr/local/nginx. 进入目录,增加cert文件夹,把刚刚下载的两个文件上传到cert/文件夹中.
- 进入nginx目录, 再进入config目录, 增加vhost文件夹把配置文件放入其中.
- 说明:下面的配置是对443端口和80端口进行监听,443端口要启用ssl。监听443端口的server配置可以仿照上面ca认证页面的nginx配置示例进行配置。
folio.conf配置
server{
listen 81;
server_name folio.codingce.com.cn;
location / {
root /usr/mxz_project/folio/;
index index.html;
}
#把http的域名请求转成https
rewrite ^(.*)$ https://$host$1 permanent;
location /logs/ {
autoindex off;
deny all;
}error_page 411 = @my_error;
}
server{
listen 443 ssl;
server_name folio.codingce.com.cn;
ssl_certificate /usr/local/nginx/cert/1_folio.codingce.com.cn_bundle.crt;
ssl_certificate_key /usr/local/nginx/cert/2_folio.codingce.com.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
charset utf-8;
location / {
root /usr/mxz_project/folio/;
index index.html;
}
}
配置完成后,检查一下nginx配置文件是否可用,有successful表示可用。
$ nginx -t // 检查nginx配置文件
配置正确后,重新加载配置文件使配置生效:
$ nginx -s reload // 使配置生效
至此, nginx的https访问就完成了, 并且通过rewrite方式把所有http请求也转成了https请求, 更加安全.
访问效果
输入https://folio.codingce.com.cn
更多推荐内容
↓↓↓
21张让你代码能力突飞猛进的速查表(神经网络、线性代数、可视化等)
一文讲懂什么是vlan、三层交换机、网关、DNS、子网掩码、MAC地址
如果你喜欢本文
请长按二维码,关注掌上编程
转发朋友圈,是对我最大的支持哟
最近整理一份面试资料《Java技术栈学习手册》,覆盖了Java技术、面试题精选、Spring全家桶、Nginx、SSM、微服务、数据库、数据结构、架构等等。获取方式:点“ 在看,关注公众号掌上编程并回复666领取,更多内容陆续奉上。
以上,便是今天的分享,希望大家喜欢,觉得内容不错的,欢迎「分享」「赞」或者点击「在看」支持,谢谢各位。
- 在WebKit中并行加载外部脚本译:
- 100行代码,搞定http监控框架
- 【腾讯反病毒实验室】深度剖析APT28最新作品
- [译]clearfix改良及overflow:hidden详解
- 深入解析CSS样式层叠权重值
- [译]CSS边框实现“无图化”设计
- 自适应的多列图文混排改进
- [译]Laravel 5.0 之运行环境及环境变量
- 90行代码,搞定日志监控框架
- Laravel Migrate 中的 Fresh 和 Refresh 命令
- 框架组件,究竟要不要自研?
- Nginx泛解析到子目录,自动判断有无public目录
- 撩妹必备,3行代码伪造出一个“好莱坞黑客”屏幕
- [译]Laravel 5.0 之事件调度程序 (定时任务)
- 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 数组属性和方法
- Android RecyclerView实现拼团倒计时列表实例代码
- 正则十八式-第一式:直捣黄龙
- 安装Grafana并使用Cloudera Manager DataSource
- Python中类变量、成员变量、局部变量的区别
- Android 友盟第三方登录与分享的实现代码
- Android实现双击返回键退出应用实现方法详解
- [- 多媒体 -] OpenGLES3.0 接入视频实现特效 - 引言
- OpenLDAP集成sssd同步用户并集成SSH登录
- 【 FlutterUnit 食用指南】 开源篇
- Flutter中如何实现无Context跳转详解
- MySQL常见问题一
- Android WiFi热点开发的示例代码
- android实现简单计算器功能
- 【 Flutter Unit 解牛篇 】代码折叠展开面板,怎么没有线?
- Android自定义底部弹出框ButtomDialog