1 阿里云Nginx配置https实现域名访问项目
第一步:签署第三方可信任的 SSL 证书
证书可以直接在阿里云里面申请免费的ssl证书
登录阿里云账号,在上方搜索栏内搜索ssl,点击ssl证书(应用安全)
来到这个页面后点击购买证书
如图选择免费版ssl证书,点击支付
支付完成后跳转到控制台首页,点击证书申请
填写完证书申请表单之后点击下一步
点击验证显示验证成功后再提交审核
审核通过后点击下载按钮
选择nginx旁边的下载
下载解压后得到一个.key和.pem文件,到这里,我们的证书申请工作已经做完了,下面可以开始配置https了
第二步:配置https
1、centos如何安装nginx可以参考这篇博文:https://segmentfault.com/a/1190000018109309
2、安装完毕后,找到nginx.conf所在的目录,我这里的目录为:/etc/nginx
3、在此目录里面新建一个文件夹cert,用来存放密匙文件
4、点击nginx.conf,配置ssl,**注意,我这里是1.16版本的nginx,1.15之前的配置和这个不一样!!**下面是我的配置:
server {listen 443 ssl http2; #配置HTTPS的默认访问端口号为443。此处如果未配置HTTPS的默认访问端口,可能会造成Nginx无法启动。Nginx 1.15.0以上版本请使用listen 443 ssl代替listen 443和ssl on。server_name www.example.xyz; #将www.certificatestests.com修改为您证书绑定的域名,例如:www.example.com。如果您购买的是通配符域名证书,要修改为通配符域名,例如:*.aliyun.com。root html;index index.html index.htm;ssl_certificate cert/cert.pem; #将domain name.pem替换成您证书的文件名称。ssl_certificate_key cert/cert.key; #将domain name.key替换成您证书的密钥文件名称。ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。ssl_prefer_server_ciphers on; }
如果是1.15之前的nginx版本的话,应该这样配置:
listen 443; #配置HTTPS的默认访问端口号为443。此处如果未配置HTTPS的默认访问端口,可能会造成Nginx无法启动。Nginx 1.15.0以上版本请使用listen 443 ssl代替listen 443和ssl on。server_name www.example.xyz; #将www.certificatestests.com修改为您证书绑定的域名,例如:www.example.com。如果您购买的是通配符域名证书,要修改为通配符域名,例如:*.aliyun.com。root html;ssl on;index index.html index.htm;ssl_certificate cert/cert.pem; #将domain name.pem替换成您证书的文件名称。ssl_certificate_key cert/cert.key; #将domain name.key替换成您证书的密钥文件名称。ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。ssl_prefer_server_ciphers on; }
5、配置反向代理,让默认端口(一般是80)代理我们项目的端口8080,也就是说我们可以通过访问80端口来达到访问8080端口的效果
server {listen 443 ssl http2; #配置HTTPS的默认访问端口号为443。此处如果未配置HTTPS的默认访问端口,可能会造成Nginx无法启动。Nginx 1.15.0以上版本请使用listen 443 ssl代替listen 443和ssl on。server_name www.example.xyz; #将www.certificatestests.com修改为您证书绑定的域名,例如:www.example.com。如果您购买的是通配符域名证书,要修改为通配符域名,例如:*.aliyun.com。root html;index index.html index.htm;ssl_certificate cert/cert.pem; #将domain name.pem替换成您证书的文件名称。ssl_certificate_key cert/cert.key; #将domain name.key替换成您证书的密钥文件名称。ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。ssl_prefer_server_ciphers on; location / {proxy_pass http://ip:8080; //ip写你自己服务器的ip} }
配置完后保存,然后重启nginx
nginx -s reloadsudo systemctl restart nginx
然后再查看防火墙是否打开,一般是关闭的,关闭的话就不需要打开了。如果是打开状态的话就开启服务器的默认端口(一般是80)和443端口
然后如果是云服务器的话还需要配置安全组,打开服务器管理控制台,点击本地实例安全组
点击手动添加或者快速添加,添加默认端口80和443端口进来,保存
下面就是配置域名解析了,来到域名控制台,点击解析
点击添加记录
然后把你的服务器的公网ip地址解析进来,点击确认
解析完毕后等10分钟差不多就可以去访问域名了,访问项目的swagger文档,可以看见已经变成https了(这里需要手动敲https才行)
可以看到成功访问项目
方法2、使用acme.sh生成https证书
一、安装
参考 acme.sh文档
$ curl https://get.acme.sh | sh
阿里云服务器中上面的方式不能下载到,所以使用下面的方式:
$ curl https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh | INSTALLONLINE=1 sh
使用命令source ~/.bashrc让alias生效,或者再次执行
$ alias acme.sh=~/.acme.sh/acme.sh
二、添加DNSAPI密钥
我使用阿里云的域名,所以直接先添加阿里云的dnsapi, 登录阿里云控制台-头像-accesskeys, 或者登录后直接打开 链接,添加并获取AccessKeyID和AccessKeySecret,存在旧的也可以直接使用。
其他类型的可以参考dnsapi文档
三、生成证书
使用阿里云的dns,所以下面的dns参数是dns_ali, 例如我们申请zqyu.com这个域名的泛域名证书
$ export Ali_Key="[参数是上面申请的AccessKeyID]"
$ export Ali_Secret="[参数是上面申请的AccessKeySecret]"
$ acme.sh --issue --dns dns_ali -d zqyu.com -d *.zqyu.com
如果下载失败可以使用 --debug参数打印更多的信息,例如
$ acme.sh --issue --dns dns_ali -d zqyu.com-d *.zqyu.com --debug
等待证书下载并保存,acme.sh 用到的所有文件都放在路径 ~/.acme.sh/, 下载的证书也全部放在这里。
四、安装证书
官方文档建议不要直接使用这个目录下的文件,所以使用命令将生成的证书安装到其他的目录。
例如nginx使用的证书,使用下面的命令将证书复制到/etc/letsencrypt/zqyu.com/nginx目录中
$ acme.sh --install-cert -d zqyu.com \
--key-file /etc/letsencrypt/zqyu.com/nginx/key.pem \
--fullchain-file /etc/letsencrypt/zqyu.com/nginx/cert.pem
nginx中使用证书
ssl_certificate /etc/letsencrypt/zqyu.com/nginx/cert.pem;
ssl_certificate_key /etc/letsencrypt/zqyu.com/nginx/key.pem;
重新加载nginx配置
$ nginx -s reload
五、证书更新
acme.sh 安装时默认添加了一个自动更新证书的定时任务
57 0 * * * “~/.acme.sh”/acme.sh --cron --home “~/.acme.sh” > /dev/null
所以证书是可以自动更新了,上面的dnsapi账号信息保存到了/.acme.sh/account.conf文件中,安装的目录保存到了/.acme.sh/zqyu.com/zqyu.com.conf,自动更新时会读取这些信息。
更新证书之后需要重新加载nginx配置
$ nginx -s reload
可以将命令也加到定时任务里面
57 0 * * * “~/.acme.sh”/acme.sh --cron --home “~/.acme.sh” > /dev/null && nginx -s reload
六、 acme.sh 更新
手动更新
$ acme.sh --upgrade
设置自动更新
acme.sh --upgrade --auto-upgrade
取消自动更新
acme.sh --upgrade --auto-upgrade 0
七、 acme.sh 卸载
- 删除文件夹 ~/.acme.sh
- 使用 crontab -e 删除生成的定时任务
- 删除别名 unalias acme.sh
- 删除 ~/.bashrc 中的 . “/root/.acme.sh/acme.sh.env”
参考链接 :
Nginx配置https实现域名访问项目 : https://www.jianshu.com/p/e7b9622a63ed
1 阿里云Nginx配置https实现域名访问项目相关推荐
- 阿里云nginx配置https
前段时间给自己的网站搭建了个https,之后又给公司的网站配置了https,配置时感觉记得不是很清晰了,特此记录一下. 步骤一: 申请ssl 证书,这里我用的是阿里云免费的证书,填写一些信息,就能申请 ...
- 阿里云slb配置https重定向后变为http
阿里云slb配置https重定向后变http问题解决 背景描述 问题 部署结构 网上搜索到的方案 方案一 方案二 原理剖析 Servlet容器重定向 Shiro 重定向 Spring MVC 重定向 ...
- 腾讯云Nginx配置https
1. 申请ssl证书(腾讯云为例) 登录腾讯云的控制台 https://console.cloud.tencent.com/ssl 申请免费证书 确认申请 如果是腾讯云的域名就选择自动DNS,不是的话 ...
- maven仓库 阿里云最新配置 https
maven镜像仓库替换成阿里云镜像仓库 安装好maven后,更新maven仓库的速度特别慢,或有有时候直接出现假死状态. 解决方案 在本地的maven的setting配置文件中添加阿里云镜像文件地址 ...
- 阿里云Nginx配置站点403Forbidden问题
对于使用nginx提供服务的站点来说,访问站点返回403错误有多种原因,比较常见的如下: nginx配置中直接返回了403http状态码 nginx中配置的站点目录或文件没有访问权限 1 站点返回40 ...
- 阿里云nginx配置ssl证书
1,申请SSL证书. 2,配置nginx.conf监听443端口,443是ssl默认的端口 http { server {listen 80 default_server;listen [::]:80 ...
- 使用certbot在nginx搭建HTTPS 以及 阿里云负载均衡HTTPS搭建
使用certbot在nginx搭建HTTPS certbot certbot官⽹ apache配置文档 安装证书自动工具 certbot yum install -y epel-release yum ...
- 阿里云nginx服务器多站点的配置
Fighting! 欲戴皇冠,必承其重! 目录视图 摘要视图 订阅 [活动]Python创意编程活动开始啦!!! CSDN日报20170426 --<四无年轻人如何逆袭> [C ...
- 阿里云 nginx把 http 向https升级安全
为什么要使用 HTTPS ? 首先来说一下 HTTP 与 HTTPS 协议的区别吧,他们的根本区别就是 HTTPS 在 HTTP 协议的基础上加入了 SSL 层,在传输层对网络连接进行加密.简单点说在 ...
最新文章
- git flow版本
- Delphi:ClientDataset+TDataSetProvider的数据保存问题
- 【存储知识学习】第三章磁盘原理与技术3.2磁盘的通俗演绎和3.3磁盘相关高层技术--《大话存储》阅读笔记
- 第一次ScrumMeeting博客:团队任务分解
- [css] 写出你遇到过IE6/7/8/9的BUG及解决方法
- python实现简单爬虫抓取图片
- Java性能优化方面的程序优化知识点归纳,希望对你有所帮助
- 实现一个简单的银行转账操作
- 区块链开发(三)以太坊客户端命令行选项汇总
- 如何以CustomValidator搭配jQuery AJAX进行Server端验证(转)
- mysql centos_centos7mysql安装
- 阿里云Landing Zone系列--2 资源目录之--多账号
- 虚拟机服务器安装虚拟机的步骤
- Atmel跑Linux的arm芯片,linux下烧写atmel芯片
- Linux添加开机自启服务
- 达人评测 华为MatePad2和华为MatePad2 Pro 怎么样
- HTML 文本格式化
- 【Android】Activity详解
- 在.NET中使用正则表达式对太平洋产品参数进行分析!
- HP大中华区总裁孙振耀退休感言(上)
热门文章
- 什么,双非学渣唯一的出路是打比赛?
- 使用resnet, inception3进行fine-tune出现训练集准确率很高但验证集很低的问题
- 深度学习_目标检测 R-CNN 论文笔记
- 查询很慢会导致锁表吗_MySQL的insert into select 引发锁表
- 使用Android OpenGL ES 2.0绘图之二:定义形状
- Ubuntu Quickbuild 安装配置
- node sqlite 插入数据_Python基础系列讲解——如何使用自带的SQLite数据库
- linux 多线程基础3
- PHP检测每一段代码执行时间
- Java将每半年发布一个版本