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

news/2024/5/13 5:27:51/文章来源:https://blog.csdn.net/zzti_erlie/article/details/100976970

在这里插入图片描述

介绍

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

http形式访问
在这里插入图片描述
https形式访问
在这里插入图片描述
我是用LET’S ENCRYPT来生成证书的,这个应该是用的最多的一个工具,也很方便。

我直接参考了官方文档上关于在CentOS 7上用nginx来让网站支持https的教程
https://certbot.eff.org/lets-encrypt/centosrhel7-nginx

1.下载

sudo yum install certbot python2-certbot-nginx

2.执行命令
默认修改/usr/local/nginx/conf目录下的nginx.conf文件

certbot --nginx -d www.erlie.cc

如果不在这个目录可以用–nginx-server-root这个参数来指定

certbot --nginx --nginx-server-root=/yourpath -d www.erlie.cc	

如果要为多个域名生成的话

-d 域名1 -d 域名2

或者每次指定一个,执行多次
过程中会有2个选项1和2

如果选 1,则通过 HTTP 和 HTTPS 都可以访问。
如果选 2,则所有通过 HTTP 来的请求,都会被 301 重定向到 HTTPS

中途中可能会遇到各种环境问题,Google解决即可。

我说一个我遇到的坑,我原来编译的时候没有选择SSL module,所以我得重新编译一下,编译完成之后我是用如下命令重启的

nginx -s reload

结果https访问一直有问题,后来我才意识到。sbin目录下重新生成的nginx得重启才能生效。
nginx -s reload只是热部署配置文件,二进制文件nginx并不生效

此时http://www.erlie.cc和https://www.erlie.cc就都可以访问了

nginx.conf配置

server {listen       80;server_name  www.erlie.cc;#charset koi8-r;access_log  /usr/local/nginx/logs/access.log combined;location = / {root   /product/new-blog-fe/dist/view;index  index.html;}location ~ .*\.html$ {root   /product/new-blog-fe/dist/view;index  index.html;}location / {proxy_pass  http://127.0.0.1:8080/;}location ~ .*\.(gif|jpeg|png|bmp|swf|flv|ico)$ {root   /product/new-blog-fe;if (-f $request_filename) {expires 1d;break;}}location ~ .*\.(js|css)?$ {root   /product/new-blog-fe;if (-f $request_filename) {expires 1d;break;}}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}listen 443 ssl; # managed by Certbotssl_certificate /etc/letsencrypt/live/www.erlie.cc/fullchain.pem; # managed by Certbotssl_certificate_key /etc/letsencrypt/live/www.erlie.cc/privkey.pem; # managed by Certbotinclude /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbotssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

最后面的5行就是前面的命令自动帮你生成的,非常方便,都不用自己配置。
可以看到我把接口的请求都转发到本地http://127.0.0.1:8080/,你应该猜到了这是一个Spring Boot项目

前端怎么写?

为了让前端在访客通过http方式访问的时候调用http接口。通过https访问的时候调用https接口,我是这样做的

nb.js

var conf = {serverHot : window.location.origin
};
var _nb = {request: function (param) {var _this = this;$.ajax({type       : param.method || 'get',url        : param.url || '',dataType   : param.type || 'json',data       : param.data || '',xhrFields  : {withCredentials: true},crossDomain: true,contentType: param.contentType || 'application/x-www-form-urlencoded;charset=UTF-8',success: function (res) {typeof param.success === 'function' && param.success(res.data, res.msg);},error: function (err) {typeof param.error === 'function' && param.error(err.statusText);}})},// 获取服务器地址getServerUrl : function(path) {return conf.serverHot + path;}
}module.exports = _nb;

window.location.origin为拿到https://www.erlie.cc类似这样的请求地址,可以在浏览器自己试一下
在这里插入图片描述
user-service.js请求用户相关的接口

var _nb = require('util/nb.js');var _user = {// 用户登录login : function(userInfo, resolve, reject){_nb.request({url     : _nb.getServerUrl('/user/login'),data    : userInfo,method  : 'POST',success : resolve,error   : reject});}
}
module.exports = _user;

userInfo为请求参数
resolve为调用成功后执行的函数
reject为调用失败后执行的函数

自动续期

对定时任务不熟悉的可以看如下文章:
https://blog.csdn.net/zzti_erlie/article/details/91998564

Let’s Encrypt 的证书90天就过期了,所以,你还要设置上自动化的更新脚本,最容易的莫过于使用 crontab 了。使用 crontab -e 命令加入如下的定时作业(每个月都强制更新一下)

输入

0 0 * * * certbot renew

参考博客

官网地址
[1]https://certbot.eff.org/
[2]https://blog.csdn.net/kikajack/article/details/79122701
各种坑
[3]https://www.centos.bz/2017/09/centos7-certbot-python-urllib3/
[4]https://blog.csdn.net/mxw2552261/article/details/79730757?utm_source=blogxgwz4
[5]https://blog.csdn.net/guangcaiwudong/article/details/98858337
左耳朵耗子
[6]https://coolshell.cn/articles/18094.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_743033.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Wordpress搭建独立网站

基于CentOS7搭建 前期环境 yum的一些命令 yum -y install 包名(支持*) :自动选择y,全自动 yum install 包名(支持*) :手动选择y or n yum remove 包名(不支持*)先把ph…

【读书笔记】大型网站架构演化

写在最前面 强烈推荐李智慧老师所著的《大型网站技术架构》一书,它能带领你从一个俯瞰的角度清晰的了解了一个网站的架构设计!本菜鸡以前每次接到一个项目的时候,总是一开始就罗列各种需要实现的功能,然后马上着手开始设计数据库…

【读书笔记】网站的高性能架构

前言 本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性。本文针对性能这一要素进行展开讨论,内容也主要参考自《大型网站技术架构》这本书&am…

【读书笔记】网站的高可用架构

前言 本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性。本文针对可用性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书…

【读书笔记】网站的伸缩性架构

前言 本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性。本文针对伸缩性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书…

【读书笔记】网站的可扩展架构

前言 本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性。本文针对扩展性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书…

【读书笔记】网站的安全架构

前言 本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性。本文针对安全性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书…

[导入]国内web2.0网站的logo集合

国内web2.0网站的logo集合,收集过程中难免有遗漏,请到 http://www.yupoo.com/word/web2补上甘先生 2006-02-13 18:03 文章来源:http://www.blogjava.net/gump/archive/2006/02/13/30487.html转载于:https://www.cnblogs.com/cngump/archive/2006/05/16/401486.html

[转载]说说大型高并发高负载网站的系统架构

说说大型高并发高负载网站的系统架构 By Michael转载请保留出处:俊麟 Michael’s blog (http://www.toplee.com/blog/?p71) Trackback Url : http://www.toplee.com/blog/wp-trackback.php?p71 我在CERNET做过拨号接入平台的搭建,而后在Yahoo&372…

PHP网站事件流,详解DOM事件流的三个阶段

事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流。DOM事件流分为三个阶段,分别为:捕获阶段:事件从Document节点自上而下向目标节点传播的阶段;目标阶段:真正的目标节点正在处理事件…

Windows 7 即将发布 - 91%的应用程序、92%的硬件设备和95%的网站完美兼容

Windows Vista的兼容性往往被大家所诟病,Windows 7打算一血前仇了。经过了长达2年的兼容性测试和改进,已经有91%的应用程序、92%的硬件设备和95%的网站完美兼容Windows 7。在这个过程中,作为微软在北京的Windows 7兼容性测试支持中心&#xf…

网站CSS背景图片抓取工具

工具介绍:  1)分析网页,获取页面图片。  2)分析网页引用CSS文件,获取背景图片。  3)批量下载。要点:  1)正则 LINK_PATTERN:获取页面所有连接 BACKGROUND_IMAGE_…

网站服务器基本安全设置

一、服务器系统安装建议1、不安装多余组件,停止不需要的服务;2、www服务单独分区;3、补丁打全;二、登录账号与口令安全1、设置密码使用、数字加大小写字母不少余8位;# vi /etc/login.defs找到以下:PASS_MAX_DAYS 99…

查看网站服务器版本,查看服务器版本

您正在运行的 Tableau Server 的版本很重要。它确定您可以访问的功能和能力。在您进行升级时,版本也很重要,因为在某些情况下,您升级的方式取决于您从中升级的版本,以及要升级到的版本。了解如何查找版本之后,就很容易…

Java开发者必去的20个英文技术网站

为什么80%的码农都做不了架构师?>>> http://www.javaalmanac.com - Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处. http://www.onjava.com - OReilly的Java网站. 每周都有新文章. http://java.sun.c…

从零开始建站-4

为什么80%的码农都做不了架构师?>>> 这里记录使用wordpress建站中遇到的问题 1、增加外网访问功能 登录数据库,在wp_options表中,修改字段 siteurl 和home均为 /wordpress,这里的wordpress的绝对路径为/var/www/htm…

Dreamwear如何创建javascript_15个免费学习JavaScript的最佳网站

作者:行者转发链接:https://codegeekz.com/15-best-websites-to-learn-javascript/前言JavaScript是Web最流行的语言。对于任何Web开发人员来说,JavaScript现在是必须学习的语言。像追踪树这样的创新已经大大提高了JavaScript的性能&#xff…

5分钟必懂-搭建网站框架踩到的坑之获取ServletPath

路径问题RealPathServletPathContextPathRequestURI获取真实ServletPath的方法RealPath String realPathrequest.getServletContext().getRealPath(); String realPathrequest.getServletContext().getRealPath("XXX");1)取得服务应用的绝对路径(本地路径…

【nosql实现企业网站系列之一】mongodb的安装

本系列文章将使用Mongodb作为nosql的数据保存载体,显示载体使用aspnetmvc3,依赖注入容器使用unity application 2。 需要使用Mongodb首先需要安装。 一、下载Mongodb 地址:http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus…

32个使用 Google 网页字体的优秀网站案例

如今,网页设计师非常注重网页字体的运用,为了能让网站有更好的可读性和更强的吸引力,他们需要更漂亮的字体。Google网页字体(Google Web Fonts)为设计师们提供了几百种免费开源的字体,只需要在网页中加入一…