介绍

最近写小程序,但是小程序的接口得通过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相关推荐

  1. 生成自己的数字证书使网站支持HTTPS

    生成自己的数字证书使网站支持HTTPS 一.了解keytool命令 二.为服务器端生成证书 三.为客户端生成证书 四.让客户端和服务器相互信任 1. 让服务器信任客户端 2. 让客户端信任服务器 五. ...

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

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

  3. 【转】借助第三方支持https协议的存储实现自己网站上扫描二维码安装IOS APP

    使用plist安装,一般是企业级开发者账号不需要登录到APP STORE的IOS设备应用发布时所用到的技巧. 准备: *一台运行着OSX的苹果电脑,最新版的XCODE,用于导出ipa和plist 一个 ...

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

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

  5. Web开发必知必会,如何使用 Letsencrypt 为网站签发 HTTPS 证书提供安全支持

    在做 Web 开发中,对网站内容的基本安全加密就是使用 HTTPS,并且在一些重视安全性的软件中,HTTPS 必不可少,微信开发中配置的域名强制使用 HTTPS,parse-dashboard 的配置 ...

  6. node如何让一个端口同时支持https与http

    众所周知node是一个高性能的web服务器,使用它可以很简单的创建一个http或https的服务器. 比如一个很简单的http服务器: var http = require('http'); var ...

  7. 推荐一个权威性价比最高的知网查重网站:https://www.cnki.cn,还可领现金优惠券哦

    推荐一个权威性价比最高的知网查重网站:https://www.cnki.cn,还可领现金优惠券哦

  8. aws s3 静态网站_如何使用AWS S3,CloudFront和命令行管理静态网站

    aws s3 静态网站 by Ben Cheng 通过本诚 如何使用AWS S3,CloudFront和命令行管理静态网站 (How to manage your static websites wi ...

  9. Nginx如何支持HTTPS?手把手教会你每一步操作都贼简单,kafka和rabbitmq区别面试题

    随着我们网站用户的增多,我们会逐渐意识到HTTPS加密的重要性.在不修改现有代码的情况下,要从HTTP升级到HTTPS,让Nginx支持HTTPS是个很好的选择.今天我们来讲下如何从Nginx入手,从 ...

最新文章

  1. sparkCore源码解析之思维脑图
  2. 穷大学生耍了三大花招成为大富翁!
  3. Shell脚本编程剖析(更新完毕)
  4. boost::asio::ip::tcp::resolver::query定义不正确导致boost::asio::ip::tcp::resolver的resolve抛出异常...
  5. C语言 *n++和(*n)++的区别
  6. JMeter 报告监听器导入.jtl结果文件报错解决方案
  7. java上传kafka的方法_哪种方法是将所有数据从Kafka主题复制到接收器(文件或Hive表)的最佳方法?...
  8. 【Windows CMD】设置编码格式
  9. iis php http500,IIS7.5 PHP环境HTTP经常500错误处理方法
  10. matlab复杂网络仿真,matlab在复杂网络上的应用
  11. 机器学习笔记-XGBoost
  12. Atitit mybatis缓存遇到的问题与解决 1.1. 只有getobj 没有执行putobject 1 1.2. 默认所有的select要读取缓存怎么办。。执行过滤 可以自己定义个白名单。
  13. 思科(Cisco)路由器常用命令总结
  14. Unity资源加载以及释放
  15. 网站html页面显示404错误,网站怎样设置404错误页面
  16. 清理MSOCache文件夹
  17. Vue中如何引用富文本?富文本又是啥?
  18. 常用的做外链方法总结
  19. 使用树莓派录音——USB声卡
  20. docker java 内存占用,jvm 在docker中内存占用问题探索 | Truman's Blog

热门文章

  1. android底层oem,Android中如何实现OEM
  2. zookeeper 和 kafka 集群搭建
  3. C++11 并发指南五(std::condition_variable 详解)
  4. LeetCode 215 数组中的第K个最大元素
  5. Shell常用参数解释($0、$1、$#、$@、$$、$USER、$HOSTNAME、$LINENO、$RANDOM、$?)
  6. Python之struct介绍及详解(与C/C++通信结构体的交互)
  7. MySql的存储过程介绍及语法实例操作
  8. 个基于TensorFlow的简单故事生成案例:带你了解LSTM
  9. java 连接IBM MQ的方法和常见问题
  10. 2018-2019-2 网络对抗技术 20165320 Exp2 后门原理与实践