Nginx配置SSL实现https请求并重定向http请求的实现
![](http://image.baizhud.com/images/mytent/2022-06-09/16547524901665475v246i90.jpeg)
本篇文章主要记录下自己的博客网站实现https请求的步骤和自己遇到的一些问题。
环境说明
因为我的网站是部署在腾讯云上的,腾讯云同时也提供了免费的SSL证书(有效期1年)。
我们进入SSL证书管理控制台,点击【申请证书】
![](http://image.baizhud.com/images/mytent/2022-06-09/165475249016XDS549752490.jpeg)
image
按照步骤就能申请对应的证书了。
DNS验证域名身份
腾讯云提供DNS验证域名身份,前提是你得开通DNS,然而DNS需要根据流量收费,对于我这个小博客来说不是很值得,所以没有忽略该方法。
这种方式无需你配置什么,只需要在控制台简单操作几步就可以了,具体可以参考腾讯云官方文档,这里就不过多介绍了。
Nginx 证书部署
首先到你的腾讯云下载你的证书www.***.com.zip
的压缩包,解压后有不同服务器的证书文件,这里只要Nginx的就可以了
![](http://image.baizhud.com/images/mytent/2022-06-09/16547524901M654m74524990.jpeg)
将Nginx文件中的1_www.***.com_bundle.crt
和2_www.***.com.key
上传至你的服务器中,我将文件放在了/etc/nginx
下。
![](http://image.baizhud.com/images/mytent/2022-06-09/1654752490r1654mr752P490.jpeg)
接下来修改你的Nginx配置文件nginx.conf
:
server {
listen 443;
server_name www.****.com; #填写绑定证书的域名
ssl on;
ssl_certificate 1_www.***.com_bundle.crt;
ssl_certificate_key 2_www.***.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录
index index.html index.htm;
}
}
配置完成后,先用bin/nginx –t
来测试下配置是否有误,正确无误的话,然后通过service nginx restart
重启nginx。就可以使 https://www.****.com
来访问了。
这里有几个问题需要注意下:
- 配置文件的证书文件的地址一定要指定对,可能你没有放在Nginx的根目录下。
- 端口问题,http是80端口,但https是443,在配置nginx的时候千万别忘记修改端口。
相关参数说明供参考:
![](http://image.baizhud.com/images/mytent/2022-06-09/16547524901yFB654m752490.jpeg)
http自动跳转https
配置到这里如果没有意外的话已经可以通过https访问了,但可能很多用户还是会通过http访问,所以需要将你原来的http重定向到你的https上。
只需要在Nginx配置中加入下面配置:
rewrite ^ https://$http_host$request_uri? permanent;
但要注意的是,不是在你原来443端口下加,这样会死循环的,而是另外启个server,类似于下面的配置:
server {
listen 80;
server_name www.***.com;
rewrite ^ https://$http_host$request_uri? permanent; # force redirect http to https
}
server {
listen 443;
server_name www.****.com; #填写绑定证书的域名
ssl on;
ssl_certificate 1_www.***.com_bundle.crt;
ssl_certificate_key 2_www.***.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录
index index.html index.htm;
}
}
这样就能实现重定向了。
如果想同时启用Http和Https,也可以这样配置:
server {
listen 80;
listen 443 ssl;
server_name www.***.com;
ssl_certificate www.***.com.crt;
ssl_certificate_key www.***.com.key;
...
}
总结
配置的时候还是需要仔细,跟着步骤来,人品好的话一次就能搞定啦。大家可以亲身试验下。
最后推荐下我的博客,可点击原文查看:https://www.bug2048.com/
- Python Selenium设计模式-POM
- 【Python学习笔记之一】Python关键字及其总结
- 前后端分离了,然后呢?
- 【Python学习笔记之二】浅谈Python的yield用法
- LINUX中常用操作命令
- Java异常抛出及try,catch应用实例
- GitHub实战系列~2.把本地项目提交到github中 2015-12-10
- 前20名Python机器学习开源项目
- 接口测试 | 24 requests + unittest集成你的接口测试
- [快学Python3]数据结构与算法-二分查找
- 基于Excel参数化你的Selenium2测试
- 【LeetCode】关关刷题日记24-Leetcode 121. Best Time to Buy and Sell Stock
- 线性表的链式存储结构的实现及其应用(C/C++实现)
- [接口测试 - 基础篇] 01 你应该了解的协议基础
- 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数据结构
- MongoDB的CRUD操作讲解-1-insert
- MongoDB入门
- 算法—判断字符串是否为IP地址
- 博客整体风格更改
- centos6.6下安装MongoDB3.x
- Goland 中配置 go-lint 代码检查
- JetBrains注册码计算(IntelliJ IDEA 15.0注册码激活)
- Java文本框内文字显示不同颜色、字号等属性【函数调用一键实现】
- PLSQL-sql操作&判断循环
- Python 技术篇-用PIL库实现彩色图片转化为黑白图片
- PLSQL-游标
- 超详细的Java容器、面板及四大布局管理器应用讲解!
- Go各时间字符串的解析
- MongoDB数据分页与排序