centos7通过nginx搭建SSL
今天给大家带来的是一篇关于通过nginx搭建HTTPS访问转跳后端HTTP的教程,部署方式如下:
安装基础组件
yum -y isntall firewalld
yum -y install gcc gcc-c++
yum -y install pcre-devel
yum -y install zlib-devel
yum -y install openssl openssl-devel
1
2
3
4
5
下载源码与编译
下载与代码(假设当前在 ~/ 目录下)
wget https://nginx.org/download/nginx-1.12.2.tar.gz
wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz
1
2
解压
cd /opt
tar zxf nginx-1.12.2.tar.gz
tar zxf openssl-1.0.2n.tar.gz
1
2
3
编译前配置,让nginx支持ssl_module与openssl
cd nginx-1.12.2
./configure --with-http_ssl_module --with-openssl=/opt/openssl-1.0.2n
1
2
编译
make
make install
1
2
安装完成后的nginx路径是: /usr/local/nginx
配置环境
到腾讯云申请证书(自创建证书参看网上其他资料)
把nginx目录下的2个文件复制到 /usr/local/nginx/conf 目录下
配置nginx
vim /usr/local/nginx/conf/nginx.conf
1
在nginx.conf中增加HTTP/HTTPS配置
upstream tomcat {
server 127.0.0.1:9081 fail_timeout=0; #后端服务地址
}
server {
listen 443;
ssl on;
server_name host.httpsDomain.com; #申请证书的域名
ssl_certificate 1_host.httpsDomain.com_bundle.crt; #证书压缩包中nginx文件夹下crt文件,相对路径是在 [/usr/local/nginx/conf]
ssl_certificate_key 2_host.httpsDomain.com.key; #证书压缩包中nginx文件夹下crt文件,相对路径是在 [/usr/local/nginx/conf]
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3; #指定SSL服务器端支持的协议版本
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #指定加密算法
ssl_prefer_server_ciphers on; #在使用SSLv3和TLS协议时指定服务器的加密算法要优先于客户端的加密算法
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 240;
proxy_send_timeout 240;
proxy_read_timeout 240;
# note, there is not SSL here! plain HTTP is used
proxy_pass http://tomcat;
}
}
server {
listen 80;
server_name host.httpsDomain.com; #http访问入口
location / {
rewrite ^ https://$http_host$request_uri? permanent; #强制跳转到HTTPS上
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
保存退出
:wq
1
启动nginx
#启动
/usr/local/nginx/sbin/nginx
#重启
/usr/local/nginx/sbin/nginx -s reload
#关闭
/usr/local/nginx/sbin/nginx -s stop
1
2
3
4
5
6
7
8
9
配置防火墙
把firewalld注册成服务并启动
systemctl enable firewalld
systemctl start firewalld
1
2
允许TCP协议下的 80,443 端口 暴露到互联网
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
1
2
3
运行测试
检查防火墙端口
firewall-cmd --list-ports
#看看输出有没有80/tcp与443/tcp
1
2
PS:如果用的是用阿里云/腾讯云,则还需要到XX云控制台检查安全策略组是否开放了TCP下的80与443
检查nginx服务
ss -ntlp | grep nginx
#确认一下 80/tcp 跟 443/tcp 是否被nginx所使用
1
2
浏览器测试
如果大家有什么问题或建议,欢迎留言 ^_^
centos7通过nginx搭建SSL的更多相关文章
- CentOS7下Nginx搭建反向代理,并使用redis保存session
1.启动两个tomcat,端口分别为8080,8081 2.配置nginx,vim /usr/local/nginx/conf/nginx.conf 添加如下配置: 3.启动nginx或热加载 启动: ...
- Centos7 下nginx 搭建文件图片服务器
现在服务器部署nginx yum install -y epel-release yum install nginx -y 安装完成之后 访问ip 由此可见nginx服务是可用的 修改nginx的配置 ...
- 部署文档(centos7.x\nginx\mysql5.6\jdk1.8\ssl\jboot)
部署文档(centos7.x\nginx\mysql5.6\jdk1.8\ssl\jboot) 1.基础环境********************************************** ...
- [转] Nginx 配置 SSL 证书 + 搭建 HTTPS 网站教程
一.HTTPS 是什么? 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合 ...
- Nginx 配置 SSL 证书 + 搭建 HTTPS 网站教程
一.HTTPS 是什么? 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合 ...
- https搭建:ubuntu nginx配置 SSL证书
HTTPS 是什么? 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用 ...
- Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)
准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796. ...
- centos7.x下环境搭建(五)—nginx搭建https服务
https证书获取 十大免费SSL证书 https://blog.csdn.net/ithomer/article/details/78075006 如果我们用的是阿里云或腾讯云,他们都提供了免费版的 ...
- [python][nginx][https] Nginx 服务器 SSL 证书安装部署
目录 前言 1 申请证书 2 Nginx 服务器 SSL 证书安装部署 2.1.准备 Nginx 环境 2.2 证书部署 2.3 Nginx 配置 3 最后 参考链接 前言 博主博客中的图片,使用的是 ...
随机推荐
- sparkSQL catalyst
最近想来,大数据相关技术与传统型数据库技术很多都是相互融合.互相借鉴的.传统型数据库强势在于其久经考验的SQL优化器经验,弱势在于分布式领域的高可用性.容错性.扩展性等,假以时日,让其经过一定的改造, ...
- 从0开始的Python学习016异常
简介 当你的程序不能正常运行的时候,Python会在控制台打印一段提醒,告诉你一个错误,这个错误就是异常. 错误 我在控制台写了一段无效的代码,将print()的括号去掉,在执行这条语句的时候,系统提 ...
- eslint 代码缩进 报错及解决
一.背景 使用vue在VScode中正常写的代码,报了一堆的错误,仔细检查,发现都是缩进要么多了要么少了,总之是代码不规范的的报错. 二.原因 百度查了发现代码规范默认缩进2个空格,而VScode默认 ...
- 一天一个Linux命令--nmcli
nmcli命令连接和删除SSID nmcli d wifi ...
- 【Linux基础】Linux命令date 日期时间
1.显示到纳秒 date +%F.%H:%M:%S.%N --:38.740127086 date +%Y-%m-%d.%H:%M:%S.%N2019-04-25.00:28:24.060756673 ...
- Visual Studio 2019 正式版 更新内容
大早上更新了Visual Studio 2019, 试用一下 一.界面改变 1.项目创建界面 首先启动界面改变就不说了,创建项目的界面做了较大改变,感觉在向vs for mac 靠拢 ,而后者感觉像x ...
- Elastic Stack-Elasticsearch使用介绍(三)
一.前言 上一篇说了这篇要讲解Search机制,但是在这个之前我们要明白下文件是怎么存储的,我们先来讲文件的存储然后再来探究机制: 二.文档存储 之前说过文档是存储在分片上的,这里要思考一个问 ...
- 序言 - PHP零基础快速入门
我为什么要写<PHP零基础快速入门>? 原因: PHP 真心简单,适合零基础的人快速入门掌握,身边的人学习一两周上手开发的比比皆是: 市面上的文章或书籍对初学者并不友好,多半枯燥乏味,我相 ...
- PY3_线程红绿灯
# Author:jum_# event 事件监测 红灯停绿灯行 线程标志位# 事件主要提供了三个方法wait.clear.set# clear:将“Flag”设置为False#set:将“Flag” ...
- css浮动学习
以前网页中的局都是使用浮动来实现的(毕竟ie9也不支持flex-box).而浮动在css中是一个挺难理解的概念,这次再巩固一下,float的具体使用事项. 1.行内元素和块元素的区别? 行内元素(im ...