一.简介

其实本来不想写这个的,但是昨天域名备案过了后,配置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配置相关推荐

  1. linux location root访问文件夹404_如何使网站支持https访问?nginx配置https证书

    购买SSL证书 要想使用https访问你的网址,首先得拥有颁发的SSL证书.我使用的是免费版,有效期为一年,过期后再重新申请. 申请SSL证书 购买后,可在搜索框输入证书关键字进入到控制台. 点击证书 ...

  2. Nginx 网站使用 acme配置 https证书访问步骤

    https://blog.ekanshu.com.cn 使用 acme配置 https访问 Nginx 网站使用 acme配置 https证书访问步骤 错误信息 由于之前配置过,从新使用名称更新配置文 ...

  3. 单阿里云负载均衡(CLB)实例配置多域名HTTPS网站(HTTPS多域名)

    1.将域名都解析到CLB对应的ip地址,操作如下图所示: 2.在CLB实例管理-监听中配置相应的扩展域名  3.在CLB实例管理-虚拟服务器组中配置相应的转发策略 具体的参考文档见:单CLB实例配置多 ...

  4. 织梦手机网站建设 并配置二级域名

    现在手机站很流行,如何用织梦程序建手机站并实现数据同步呢?我们都知道通过开发实现数据同步还是比较麻烦的,咱们就来说下利用织梦自动的手机wap浏览是如何实现手机网站建设并配置二级域名的. 首先为织梦安装 ...

  5. 关于网站域名的配置过程

    这个是搜索了N久之后,提炼出来的一段比较有用的信息.(最后还是没搞定,555555) 关于网站域名的配置过程 1.域名解析到服务器 2.服务器绑定域名到具体的文件夹 (这个文件夹 就是网站的 &quo ...

  6. HTTPS配置全记录

    HTTPS配置全记录 环境 常见的部署环境和条件有以下几种情况组合: Apache+自签名证书 Apache+免费或商业证书 Nginx+自签名证书 Nginx+免费或商业证书 免费证书和商业证书本质 ...

  7. 一个命令,让你的网站支持https

    介绍 最近写小程序,但是小程序的接口得通过https的形式访问,所以用nginx转发了一下.想到Google搜索引擎会提高https网站的权重,索性把我的网站改造成同时支持http和https了.看效 ...

  8. 记一次免费让网站启用HTTPS的过程

    写在前面 个人网站运行将近2个月了,期间根据酷壳的一篇教程如何免费的让网站启用HTTPS做了一次,中间遇到问题就放下了.昨天孙三苗问我网站地址说要添加友链,出于好奇想看他网站长什么样,顺道也加一下友链 ...

  9. 互联网创业成功之道(三):网站支付功能配置

    在了解了互联网创业的理论知识之后,就开始实地进行网站创业的实战操作吧.在本章中将详细讲解如何搭建一个符合用户体验的网站. 一.网站的页面规划和风格设计 二.网站编程语言的选择 三.网站数据库的选择 四 ...

最新文章

  1. BeanUtils.copyProperties VS PropertyUtils.copyProperties
  2. realARM s5pv210开发板wifi开机启动设置方法 开机启动linux应用程序
  3. MongoDB可视化工具--Robo 3T 使用教程
  4. httpclient妙用一 httpclient作为客户端调用soap webservice(转)
  5. Harmony OS — ProgressBar垂直、水平进度条
  6. 一篇博客:分类模型的 Loss 为什么使用 cross entropy 而不是 classification error 或 squared error...
  7. 国密SM2算法的只求理解不求甚解 (3/5)SM2算法数学模型
  8. 机器学习(聚类八)——密度聚类
  9. java m个苹果n个篮子_m个苹果放在n个筐里,每个筐至少一个,所有的筐都一样,有多少种放法...
  10. 鸿蒙之始有几个老婆,先天五太
  11. 别再吐槽12306了!有本事你来写架构
  12. 观影坪-纪录片之《穹顶之下》
  13. 小白也能行--李洵同款--动态爱心代码《附可跳动版本代码》
  14. 5G网速比4G快那么多,是否意味着4G即将淘汰?
  15. mysql没开启binlog恢复删除表_无全量备份、未开启binlog日志,利用percona工具恢复delete的数据...
  16. 集线器,路由器,交换机的作用和区别是什么
  17. web全栈-第一讲:web开发基本知识点
  18. 流媒体传输 - HLS 协议
  19. python爬hdu网页
  20. springboot导出excel(easyexcel和poi 列下拉及表格锁定)

热门文章

  1. python 命名字典_python字典命名
  2. 文明游戏5的计算机配置,文明太空配置要求 最低电脑配置要求
  3. 觉醒!MACROSS!(模拟)
  4. 更优雅的字符串print——pprint库的使用
  5. 构建基于SRU(Search and Retrieve via URL)协议的服务接口
  6. java中异常处理语句错误用法的是_Java异常处理语句及解析
  7. 二、前端技术-es6的介绍
  8. TCP 四次挥手,可以变成三次挥手吗?
  9. JAVA计算机毕业设计诗歌分享平台源码+系统+mysql数据库+lw文档
  10. paho mqtt java_MQTT之Eclipse.Paho源码(一)--建立连接