博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
全站HTTPS升级系列(三)nginx配置全站HTTPS
阅读量:6831 次
发布时间:2019-06-26

本文共 1908 字,大约阅读时间需要 6 分钟。

前言

上篇,我们介绍了HTTPS的SSL证书,以及如何通过acme.sh生成并自动更新SSL证书。 本篇,我们介绍如何通过nginx配置配置全站https,以及容易踩的坑

环境

  • linux服务器,操作系统为 centos7.2
  • nginx 1.10.1
  • acme.sh v2.8.0

本文以msh.com的域名证书为例

一、给nginx安装ssl模块

想要nginx支持https,必须安装http_ssl_module模块。该模块如果未安装或安装失败,在配置nginx的https时会报unknown directive "ssl"的错

首先切换到nginx的安装包目录,然后执行如下命令

####### 下载你当前版本的nginx包,并且解压 进到目录./configure --with-http_ssl_module####### 切记千万不要make install 那样就覆盖安装了make####### 将原来的nginx备份 备份之前先关闭当前正在执行的nginx/usr/local/nginx/sbin/nginx -s stopcp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak####### make之后会在当前目录生成 objs 目录cp objs/nginx /usr/local/nginx/sbin/nginx####### 然后重新启动nginx/usr/local/nginx/sbin/nginx复制代码

二、告知nginx你的证书存放的位置

本人指定的证书存放位置为/mycertify/ssl

打开nginx安装目录的nginx.conf配置文件。因为是泛域名证书,所以当前域名以及当前域名下的所有次级子域名可以共用一个证书

# 第一个子域名server {	# https默认监听的是443 端口	listen       443 ssl;	server_name b.msh.com  ;	# 指定证书位置    ssl_certificate /mycertify/ssl/msh.com.cer;  	ssl_certificate_key /mycertify/ssl/msh.com.key;		# 下方的5个配置项是和https无关的,如果想让nginx能正常代理websocket,则必须加上	# 防止nginx代理websocket时,每隔75秒自动中断	proxy_connect_timeout 7d;	proxy_send_timeout 7d;	proxy_read_timeout 7d;	# 防止nginx代理websocket 报错	proxy_set_header Upgrade $http_upgrade;	proxy_set_header Connection "upgrade";	location / {		proxy_pass http://localhost:8585;	}}# 其他的同级域名的证书配置,也可以照搬同上这样配置复制代码

三、强制将HTTP请求转到HTTPS请求

网站虽然升级成为了https,但是客户端可能会依然通过原先的http协议访问。这就需要通过nginx做重定向到https

假如访问路径为 http://b.msh.com ,重定向后的实际访问路径为 https://b.msh.com

server {	listen       80;	server_name b.msh.com  www.b.msh.com ;	rewrite ^(.*) https://$host$1 permanent;	}复制代码

三、 重启nginx,使以上配置生效

/usr/local/nginx/sbin/nginx  -s reload复制代码

注意:到这一步,配置还没有完成!!!。十个人里面有九个到这一步就以为大功告成了,然而却漏掉了不起眼但是最重要的一步,也是很多教程里面所没有提到的,那就是开启防火墙443端口

四、使防火墙放开443端口

开启443端口

firewall-cmd --zone=public --add-port=443/tcp --permanent复制代码

重启防火墙,切记!!!!!!!!

firewall-cmd --reload复制代码

至此,大功告成,可以在浏览器里面输入地址测试了

系列文章

转载于:https://juejin.im/post/5c3865ba6fb9a049e93cf339

你可能感兴趣的文章
一次性理清JavaScript变量等高难度面试问题
查看>>
利用构建缓存机制缩短Docker镜像构建时间
查看>>
LeetCode31.下一个排列 JavaScript
查看>>
极简教程: 使用 matplotlib 绘制 GIF 动图
查看>>
数据库分片(Database Sharding)详解
查看>>
技术风险防控平台:打造金融交易系统的故障免疫能力
查看>>
怎样把酷狗音乐wav转化成高品质的MP3格式?
查看>>
浅谈算法学习
查看>>
区块链智能合约solidity入门
查看>>
js ES6 求数组的交集,并集,还有差集
查看>>
java-LearningRxjava-ch01-Thinking Reactively
查看>>
前端知识点——图片
查看>>
thinkphp源码分析(三)—自动加载篇(Loader的分析)
查看>>
Blink 真香
查看>>
一块听听:Mixin 主网上线语音直播文字稿
查看>>
brew安装错误brew Error: /usr/local must be writable!
查看>>
可应用于实际的14个NLP突破性研究成果(三)
查看>>
Git命令
查看>>
CentOS 6.9 安装最新版本 git
查看>>
[LeetCode] 41. First Missing Positive
查看>>