个人网站的HTTPS配置
一.简介
其实本来不想写这个的,但是昨天域名备案过了后,配置https搞了我整整半天,属实是搞急了,csdn上面坑人的教程可真是多,走了很多的弯路,趁着现在还记得,就记录一下吧,后面说不定也会用到的,这篇写完就要准备去复习了,感觉离被卷死真的就一步之遥了……
二.方法
2.1 Tomcat的方法
不推荐使用这种方法,因为需要修改工程代码和配置。我在最开始配nginx转发失败时,也尝试了一下这种方法,方法是ok的,但便利程度远不及nginx,所以为什么不用nginx转发呢?不过说不定以后还会用到这种方式,所以也记录一下吧
1. 申请证书,域名购买的地方一般可以免费申请,我是在阿里云申请的,参考:阿里云域名购买,购买免费的DV单域名证书就可以了,有效期一年,到期可以继续申请的
2. 下载证书的Tomcat版本,将其中的pfx文件拷贝到项目的resource目录下
3. 配置application.yaml文件
server:ssl:enabled: truekey-store-password: pfx-password.txt中的密码key-store-type: PKCS12key-store: classpath:你的.pfx文件名
4 在SpringBoot启动项下添加相关配置
@Beanpublic ServletWebServerFactory servletContainer() {TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {@Overrideprotected void postProcessContext(Context context) {SecurityConstraint securityConstraint = new SecurityConstraint();securityConstraint.setUserConstraint("CONFIDENTIAL");SecurityCollection collection = new SecurityCollection();collection.addPattern("/*");securityConstraint.addCollection(collection);context.addConstraint(securityConstraint);}};tomcat.addAdditionalTomcatConnectors(httpConnector());return tomcat;}@Beanpublic Connector httpConnector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");//Connector监听的http的端口号connector.setPort(8080);connector.setSecure(false);//监听到http的端口号后转向到的https的端口号connector.setRedirectPort(443);return connector;}
5. 在你的服务器尝试运行一下你的项目,因为你可能会碰到很多的端口冲突情况,老老实实用lsof -i:端口号去杀冲突的进程吧.
6. 去你的域名解析那儿配置域名解析,我用的阿里云,可以参考阿里云域名解析向导
7. 最后,重新运行项目即可,不过还是不太推荐这种方式,不方便,且会出现很多很多莫名其妙的问题,所以还是用nginx吧
2.2 Nginx转发
推荐的方法!只要你别跟着csdn上面那些坑爹的教程做就好了
1. 申请证书,域名购买的地方一般可以免费申请,我是在阿里云申请的: 阿里云域名购买,购买免费的DV单域名证书就可以了,有效期一年,到期可以继续申请的
2. 下载证书的nginx版本,其中包含key和pem两个文件
3. 检查你nginx有没有安装ssl模组,nginx/sbin目录下(你可能看不见sbin这个目录,但并没有问题,可以直接带着路径执行指令),指令nginx -V(带目录指令 /usr/local/nginx/sbin/nginx-V 前面改成你的目录)
如果显示configure arguments: --with-http_ssl_module代表正确安装了,请跳到步骤5,否则需要重新安装模块
4. 进入你nginx的目录,就是压缩包解压的目录下,使用指令./configure --with-http_ssl_module,如果您nginx没有其他的设置,建议直接执行make install重新安装,这样会覆盖原来的版本,可以确保安装没有问题,否则执行make(我没试过……不过csdn上说这样可以,要不你们试试?),安装完按照步骤三检查一下,确保没有问题
5. 将你的pem和key文件拷贝到nginx配置文件的目录下
6. 将相关端口添加到阿里云网络安全组中,阿里云请参考阿里云端口配置,并开启防火墙限制(443,80,你项目的端口)
#基于Centor OS 7的防火墙配置过程1. 防火墙状态设置firewall-cmd --state #查看防火墙状态,为了安全性,建议开启开启防火墙systemctl start firewalld.service #开启防火墙systemctl enable firewalld.service #设置防火墙开机自启动,建议设置一下systemctl is-enabled firewalld.service;echo $? #查看是否设置成功,显示enabled和0,代表设置成功2.开启端口firewall-cmd --zone=public --add-port=端口号/tcp --permanent #--permanent永久生效,没有此参数重启后失效firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent #批量添加1000-2000firewall-cmd --reload #重新载入防火墙firewall-cmd --list-ports #查看端口开放情况,其中须包括443,80,项目端口
7. 配置nginx配置文件,如果您不确定使用了哪个配置文件,使用指令ps -ef | grep nginx查看,最后会显示当前配置文件路径的,配置文件修改步骤如下
1.注释掉默认配置,整段需全部注释掉server{listen 80;…………}2.添加https端口监听server {listen 443 ssl;server_name 你的域名;ssl_certificate 你的pem文件地址;ssl_certificate_key 你的key文件地址;#地址可以使用对于本配置文件的相对路径,例如如果你的文件和conf同级目录下,则可以直接写文件名#最好使用绝对路径ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {proxy_pass http://你服务器的ip:你项目的端口;root html;index index.html index.htm;}}3.添加80端口监听和强制转化server {listen 80; #域名访问会默认映射到80端口server_name 你的域名;location / {proxy_pass http://你服务器的ip:你项目的端口;index index.html index.htm;proxy_set_header Host $host;proxy_set_header X-Real-Ip $remote_addr;proxy_set_header X-Forwarded-For $remote_addr;}rewrite ^(.*)$ https://你的域名:443/$1 permanent;}
8. 重新启动nginx,使用指令nginx -s reload即可(带目录执行/usr/local/nginx/sbin/nginx -s reload 前面改成你的目录)
9.域名解析,配置两条A记录www和@,记录值填你的ip即可,TTL无需修改
三.其他
如果您将网站升级了https,请注意网站内所有http链接都会失效
个人网站的HTTPS配置相关推荐
- linux location root访问文件夹404_如何使网站支持https访问?nginx配置https证书
购买SSL证书 要想使用https访问你的网址,首先得拥有颁发的SSL证书.我使用的是免费版,有效期为一年,过期后再重新申请. 申请SSL证书 购买后,可在搜索框输入证书关键字进入到控制台. 点击证书 ...
- Nginx 网站使用 acme配置 https证书访问步骤
https://blog.ekanshu.com.cn 使用 acme配置 https访问 Nginx 网站使用 acme配置 https证书访问步骤 错误信息 由于之前配置过,从新使用名称更新配置文 ...
- 单阿里云负载均衡(CLB)实例配置多域名HTTPS网站(HTTPS多域名)
1.将域名都解析到CLB对应的ip地址,操作如下图所示: 2.在CLB实例管理-监听中配置相应的扩展域名 3.在CLB实例管理-虚拟服务器组中配置相应的转发策略 具体的参考文档见:单CLB实例配置多 ...
- 织梦手机网站建设 并配置二级域名
现在手机站很流行,如何用织梦程序建手机站并实现数据同步呢?我们都知道通过开发实现数据同步还是比较麻烦的,咱们就来说下利用织梦自动的手机wap浏览是如何实现手机网站建设并配置二级域名的. 首先为织梦安装 ...
- 关于网站域名的配置过程
这个是搜索了N久之后,提炼出来的一段比较有用的信息.(最后还是没搞定,555555) 关于网站域名的配置过程 1.域名解析到服务器 2.服务器绑定域名到具体的文件夹 (这个文件夹 就是网站的 &quo ...
- HTTPS配置全记录
HTTPS配置全记录 环境 常见的部署环境和条件有以下几种情况组合: Apache+自签名证书 Apache+免费或商业证书 Nginx+自签名证书 Nginx+免费或商业证书 免费证书和商业证书本质 ...
- 一个命令,让你的网站支持https
介绍 最近写小程序,但是小程序的接口得通过https的形式访问,所以用nginx转发了一下.想到Google搜索引擎会提高https网站的权重,索性把我的网站改造成同时支持http和https了.看效 ...
- 记一次免费让网站启用HTTPS的过程
写在前面 个人网站运行将近2个月了,期间根据酷壳的一篇教程如何免费的让网站启用HTTPS做了一次,中间遇到问题就放下了.昨天孙三苗问我网站地址说要添加友链,出于好奇想看他网站长什么样,顺道也加一下友链 ...
- 互联网创业成功之道(三):网站支付功能配置
在了解了互联网创业的理论知识之后,就开始实地进行网站创业的实战操作吧.在本章中将详细讲解如何搭建一个符合用户体验的网站. 一.网站的页面规划和风格设计 二.网站编程语言的选择 三.网站数据库的选择 四 ...
最新文章
- BeanUtils.copyProperties VS PropertyUtils.copyProperties
- realARM s5pv210开发板wifi开机启动设置方法 开机启动linux应用程序
- MongoDB可视化工具--Robo 3T 使用教程
- httpclient妙用一 httpclient作为客户端调用soap webservice(转)
- Harmony OS — ProgressBar垂直、水平进度条
- 一篇博客:分类模型的 Loss 为什么使用 cross entropy 而不是 classification error 或 squared error...
- 国密SM2算法的只求理解不求甚解 (3/5)SM2算法数学模型
- 机器学习(聚类八)——密度聚类
- java m个苹果n个篮子_m个苹果放在n个筐里,每个筐至少一个,所有的筐都一样,有多少种放法...
- 鸿蒙之始有几个老婆,先天五太
- 别再吐槽12306了!有本事你来写架构
- 观影坪-纪录片之《穹顶之下》
- 小白也能行--李洵同款--动态爱心代码《附可跳动版本代码》
- 5G网速比4G快那么多,是否意味着4G即将淘汰?
- mysql没开启binlog恢复删除表_无全量备份、未开启binlog日志,利用percona工具恢复delete的数据...
- 集线器,路由器,交换机的作用和区别是什么
- web全栈-第一讲:web开发基本知识点
- 流媒体传输 - HLS 协议
- python爬hdu网页
- springboot导出excel(easyexcel和poi 列下拉及表格锁定)
热门文章
- python 命名字典_python字典命名
- 文明游戏5的计算机配置,文明太空配置要求 最低电脑配置要求
- 觉醒!MACROSS!(模拟)
- 更优雅的字符串print——pprint库的使用
- 构建基于SRU(Search and Retrieve via URL)协议的服务接口
- java中异常处理语句错误用法的是_Java异常处理语句及解析
- 二、前端技术-es6的介绍
- TCP 四次挥手,可以变成三次挥手吗?
- JAVA计算机毕业设计诗歌分享平台源码+系统+mysql数据库+lw文档
- paho mqtt java_MQTT之Eclipse.Paho源码(一)--建立连接