一个命令,让你的网站支持https
介绍
最近写小程序,但是小程序的接口得通过https的形式访问,所以用nginx转发了一下。想到Google搜索引擎会提高https网站的权重,索性把我的网站改造成同时支持http和https了。看效果
http形式访问
https形式访问
我是用LET'S ENCRYPT来生成证书的,这个应该是用的最多的一个工具,也很方便。
我直接参考了官方文档上关于在CentOS 7上用nginx来让网站支持https的教程
1.下载
sudo yum install certbot python2-certbot-nginx
2.执行命令
certbot --nginx -d www.erlie.cc
如果不在这个目录可以用--nginx-server-root这个参数来指定
certbot --nginx --nginx-server-root=/yourpath -d www.erlie.cc
如果要为多个域名生成的话
-d 域名1 -d 域名2
或者每次指定一个,执行多次
如果选 1,则通过 HTTP 和 HTTPS 都可以访问。
中途中可能会遇到各种环境问题,Google解决即可。
我说一个我遇到的坑,我原来编译的时候没有选择SSL module,所以我得重新编译一下,编译完成之后我是用如下命令重启的
nginx -s reload
结果https访问一直有问题,后来我才意识到。sbin目录下重新生成的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方式访问的时候调用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为请求参数
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号
好文章,我在看❤️
一个命令,让你的网站支持https相关推荐
- 生成自己的数字证书使网站支持HTTPS
生成自己的数字证书使网站支持HTTPS 一.了解keytool命令 二.为服务器端生成证书 三.为客户端生成证书 四.让客户端和服务器相互信任 1. 让服务器信任客户端 2. 让客户端信任服务器 五. ...
- linux location root访问文件夹404_如何使网站支持https访问?nginx配置https证书
购买SSL证书 要想使用https访问你的网址,首先得拥有颁发的SSL证书.我使用的是免费版,有效期为一年,过期后再重新申请. 申请SSL证书 购买后,可在搜索框输入证书关键字进入到控制台. 点击证书 ...
- 【转】借助第三方支持https协议的存储实现自己网站上扫描二维码安装IOS APP
使用plist安装,一般是企业级开发者账号不需要登录到APP STORE的IOS设备应用发布时所用到的技巧. 准备: *一台运行着OSX的苹果电脑,最新版的XCODE,用于导出ipa和plist 一个 ...
- 记一次免费让网站启用HTTPS的过程
写在前面 个人网站运行将近2个月了,期间根据酷壳的一篇教程如何免费的让网站启用HTTPS做了一次,中间遇到问题就放下了.昨天孙三苗问我网站地址说要添加友链,出于好奇想看他网站长什么样,顺道也加一下友链 ...
- Web开发必知必会,如何使用 Letsencrypt 为网站签发 HTTPS 证书提供安全支持
在做 Web 开发中,对网站内容的基本安全加密就是使用 HTTPS,并且在一些重视安全性的软件中,HTTPS 必不可少,微信开发中配置的域名强制使用 HTTPS,parse-dashboard 的配置 ...
- node如何让一个端口同时支持https与http
众所周知node是一个高性能的web服务器,使用它可以很简单的创建一个http或https的服务器. 比如一个很简单的http服务器: var http = require('http'); var ...
- 推荐一个权威性价比最高的知网查重网站:https://www.cnki.cn,还可领现金优惠券哦
推荐一个权威性价比最高的知网查重网站:https://www.cnki.cn,还可领现金优惠券哦
- aws s3 静态网站_如何使用AWS S3,CloudFront和命令行管理静态网站
aws s3 静态网站 by Ben Cheng 通过本诚 如何使用AWS S3,CloudFront和命令行管理静态网站 (How to manage your static websites wi ...
- Nginx如何支持HTTPS?手把手教会你每一步操作都贼简单,kafka和rabbitmq区别面试题
随着我们网站用户的增多,我们会逐渐意识到HTTPS加密的重要性.在不修改现有代码的情况下,要从HTTP升级到HTTPS,让Nginx支持HTTPS是个很好的选择.今天我们来讲下如何从Nginx入手,从 ...
最新文章
- sparkCore源码解析之思维脑图
- 穷大学生耍了三大花招成为大富翁!
- Shell脚本编程剖析(更新完毕)
- boost::asio::ip::tcp::resolver::query定义不正确导致boost::asio::ip::tcp::resolver的resolve抛出异常...
- C语言 *n++和(*n)++的区别
- JMeter 报告监听器导入.jtl结果文件报错解决方案
- java上传kafka的方法_哪种方法是将所有数据从Kafka主题复制到接收器(文件或Hive表)的最佳方法?...
- 【Windows CMD】设置编码格式
- iis php http500,IIS7.5 PHP环境HTTP经常500错误处理方法
- matlab复杂网络仿真,matlab在复杂网络上的应用
- 机器学习笔记-XGBoost
- Atitit mybatis缓存遇到的问题与解决 1.1. 只有getobj 没有执行putobject	1 1.2. 默认所有的select要读取缓存怎么办。。执行过滤 可以自己定义个白名单。
- 思科(Cisco)路由器常用命令总结
- Unity资源加载以及释放
- 网站html页面显示404错误,网站怎样设置404错误页面
- 清理MSOCache文件夹
- Vue中如何引用富文本?富文本又是啥?
- 常用的做外链方法总结
- 使用树莓派录音——USB声卡
- docker java 内存占用,jvm 在docker中内存占用问题探索 | Truman's Blog
热门文章
- android底层oem,Android中如何实现OEM
- zookeeper 和 kafka 集群搭建
- C++11 并发指南五(std::condition_variable 详解)
- LeetCode 215 数组中的第K个最大元素
- Shell常用参数解释($0、$1、$#、$@、$$、$USER、$HOSTNAME、$LINENO、$RANDOM、$?)
- Python之struct介绍及详解(与C/C++通信结构体的交互)
- MySql的存储过程介绍及语法实例操作
- 个基于TensorFlow的简单故事生成案例:带你了解LSTM
- java 连接IBM MQ的方法和常见问题
- 2018-2019-2 网络对抗技术 20165320 Exp2 后门原理与实践