nginx配置自签名https
nginx配置https是需要CA颁发证书的,为了测试方便,我们可以使用自签名证书
1.如何生成自签名证书 1.1:我们需要为服务端和客户端准备私钥和公钥:
//生成服务器端私钥
openssl genrsa -out server.key 1024
//生成服务器端公钥
openssl rsa -in server.key -pubout -out server.pem
1.2:生成CA证书
// 生成 CA 私钥
openssl genrsa -out ca.key 1024
openssl req -new -key ca.key -out ca.csr
注意:执行上面命令会出现以下需要填写的项目,可以直接回车跳过,但是Common Name那一项建议填写你的域名,如果是本地的话,可以写localhost
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:这个是你的域名
Email Address []:
生成CA证书
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
1.3:生成服务器证书
//服务器端需要向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR 文件
openssl req -new -key server.key -out server.csr
//向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,最终颁发一个带有 CA 签名的证书
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
1.4:生成cer文件
//使用openssl 进行转换
openssl x509 -in server.crt -out server.cer -outform der
2.配置nginx 我们拿到CA签发的这个证书后,需要将证书配置在nginx中。 首先,我们将server.crt和server.key拷贝到nginx的配置文件所在的目录 其次,在nginx的配置中添加如下配置:
server {
listen 443 ssl;
server_name 你的域名;
charset utf-8;
ssl on;
ssl_certificate server.crt;
ssl_certificate_key server.key;
location / {
root html;
index index.html index.htm;
}
}
当前我们只是做一个欢迎页的https测试,所以location用的是默认的。需要扩展的小伙伴可以自行修改配置。 最后,重启nginx,访问https://你的域名,便可出现欢迎页。
注意:很多时候,访问一个网站的时候不会刻意去加https开头,而是直接输入域名访问,但是这样浏览器默认是http请求,如何让用户直接输入域名访问的也是https请求呢? 方法1:将所有http请求重定向到https
server {
charset utf-8;
listen 80;
server_name 你的域名;
rewrite ^(.*) https://$host$1 permanent;
}
方法2:当网站只允许https访问的时候,通过http访问会报497状态码,利用error_page的方式重定向到https
server {
listen 443 ssl;
listen 80;
server_name localhost;
charset utf-8;
ssl on;
ssl_certificate server.crt;
ssl_certificate_key server.key;
location / {
root html;
index index.html index.htm;
}
error_page 497 https://$host$uri?$args;
}
方法3:利用浏览器的方式 首先,建一个html文本,命名为https.html
<html>
<meta http-equiv="refresh" content="0;url=https://你的域名/">
</html>
其次,再通过配置监听80端口的server对该html访问:
server {
charset utf-8;
listen 80;
server_name 你的域名;
location / {
root html;
index https.html;
}
error_page 404 https://你的域名/;
}
以上方式亲测有效,小伙伴可以根据实际情况使用。
nginx配置自签名https的更多相关文章
- Windows下Nginx配置SSL实现Https访问(包含证书生成)
Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...
- Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)
准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796. ...
- 使用SSL安全证书和nginx配置将域名HTTPS化
一.在阿里云后台申请免费版证书: 二.在域名解析里面添加记录: 三.提交审核: 四.等待审核通过后,下载nginx证书: 五.按照文档修改nginx配置文件: https://help.aliyun. ...
- linux下nginx配置ssl证书(https)
nginx配置ssl很简单,首先需要两个文件,一个是crt文件,另一个是key文件,如下所示: xxx.crt; #(证书公钥)xxx.key; #(证书私钥) 把这两个文件放到nginx的conf ...
- nginx 配置多个 https 域名访问
需要此操作的原因 在服务器上部署了 halo blog 以后,这次需要部署另外一个项目,但是又不想使用 ip + port,因此选择使用 nginx 配置多个域名访问. nginx 配置 server ...
- nginx 配置自签名的ssl证书
最近要搭一个https的测试环境,使用nginx做反向代理. 网上找过不少资料,但过程不是很完整,吃了不少亏,故把自己的操作过程总结下来.如果你刚好遇到这个问题,希望对你有帮助! ********** ...
- Nginx配置自签名的SSL证书(转载)
要保证Web浏览器到服务器的安全连接,HTTPS几乎是唯一选择.HTTPS其实就是HTTP over SSL,也就是让HTTP连接建立在SSL安全连接之上. SSL使用证书来创建安全连接.有两种验证模 ...
- 阿里云Center OS 6.2 Nginx 配置 SSL/TLS HTTPS配置
1.通过https://www.startssl.com/ 免费SSL证书 STARTSSL 跟VeriSign一样,StartSSL(网址:http://www.startssl.com,公司名:S ...
- nginx配置-http和https
#user nobody;worker_processes 1;error_log logs/error.log;#error_log logs/error.log notice;#error_log ...
随机推荐
- NVIDIA-docker Cheatsheet
TensorFlow Docker requirements Install Docker on your local host machine. For GPU support on Linux, ...
- python基础--初始数据结构
目录: 一.知识点1.IDE 集成开发环境2.字符格式化输出3.数据运算4.循环loop5.数据类型6.列表与元组 二.例子1.输入名字.年龄.工作.薪水,进行格式化的输出.2.for语句实现输入密码 ...
- AI的自学题库-竞赛-基础知识
阿里云(天池): https://tianchi.aliyun.com/course?spm=5176.12281897.0.0.209439a9UwObn3 天池竞赛:https://tianchi ...
- 带你快速上手前端三剑客之css
CSS介绍 CSS(Cascading Style Sheet , 层叠样式表)定义如何显示HTML元素.当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染) 组成 每个CS ...
- 目标检测论文解读5——YOLO v1
背景 之前热门的目标检测方法都是two stage的,即分为region proposal和classification两个阶段,本文是对one stage方法的初次探索. 方法 首先看一下模型的网络 ...
- Diagnostic Viewer 显示空白
MATLAB R2014a仿真出现错误后,查找错误时,Diagnostic Viewer 显示空白.网上查的一种解决方法.我的电脑是Windows7. 1.点击 所有程序>附件>记事本(以 ...
- 201671010403 陈倩倩 实验十四 团队项目评审&课程学习总结
一:实验名称:团队项目评审&课程学习总结 二:实验目的与要求 (1)掌握软件项目评审会流程: (2)反思总结课程学习内容. 三:实验步骤 任务一:按照团队项目结对评审名单,由项目组扮演乙方,结 ...
- python基础语法1 用户交互,基本数据类型,格式化输出,运算符
与用户交互: 输入: python2: input一定要声明你输入的类型 >>> input(">>:") >>:sean Traceba ...
- wordpress角色权限汇总
我们在用wordpress开发的时候有时候需要设置不同的用户组及权限,具体有哪些角色权限呢?随ytkah一起来看看吧.WordPress使用了角色的概念,旨在让站点所有者能够控制用户在站点中可以做什么 ...
- js里apply用法
1.Function.apply,用于构造函数的继承,继承另外一个构建对象的属性与方法 function People(name,age){ this.name = name; thi ...