本篇不讲什么是https,什么是SSL,什么是nginx

想了解这些的请绕道,相信有很多优秀的文章会告诉你。

本篇要讲的在最短的时间内,让你的网站从http升级到https。

开始教程前再说一句:https你值得拥有。

百牛信息技术bainiu.ltd整理发布于博客园

起因
最近段时间,微信小程序爆火,消息一出,各路豪杰,摩拳擦掌,跃跃欲试。

都想这个坑(这里不多阐述,具体坑不坑,developer最清楚)里跳。微信对小程序也是有诸多的限制。

例如文件大小,请求服务端必须是https。

文件大小,好办,开发过程中尽量的控制文件,能复用的尽量复用。用不到的文件尽量不引用。本地的图片也尽量的少。

可https,在国内线上用https的都不算多,更何况是开发过程中用https,应该就更少了吧。

如果你正在开发微信小程序,并还没有https,那么巧了,那么我想,这篇可能可以帮到你。

StartSSL免费SSL证书
都说了是开发用(如果到了线上,想要https,相关的运维人员会搞定收费的https),那当然要用免费的。

StartSSL就是个不错的选择。

StartSSL
StartSSL是StartCom公司旗下的SSL证书,提供免费SSL证书服务并且被主流浏览器支持的免费SSL,包括Chrome、Firefox、IE等浏览器都可以正常识别StartSSL,更主要的是StartSSL提供免费3年且可以无限续期的SSL证书,而且可以设置10个域名。

StartSSL注册、登录
1 进入注册页面

进入https://www.startssl.com/SignUp。

2 注册很简单只需要填个邮箱发送验证码

3 然后填入获得的验证码,点击按钮后会跳转至设置密码

4 注册成功后,会让你下载用于登录的证书,因为该网站提供了两种登录方式,客户端证书认证和邮箱登录(填写邮箱,获得验证码登录),个人感觉使用邮箱也很方便。

申请免费的SSL
1 先添加验证域名,选择选项卡的Validations Wizard,并选择Domain Validation (for SSL certificate)
点击Validation

2 填入域名,并在域名所有者邮箱(或域名对应的企业邮箱)中获取发送的验证码

3 添加的域名验证成功,点击To "Order SSL Certificate "

4 现在可以开始给自己的域名申请StartSSL免费SSL证书了,这里添加用于申请证书的完整的域名

5 申请StartSSL免费SSL时,会要求填入CSR

6 CSR 生成可以有两种方式,一种是使用StartSSL提供的[StartComTool.exe](https://download.startpki.com/startcom/startcomtool.exe)适用于Window,另一种方式也可以使用openssl命令,适用于Mac,liunx等。

openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr

7 把生成的(youname.csr)CSR签名证书请求内容,粘贴进去

8 然后StartSSL就可以免费SSL下载使用

下载免费的SSL
下载下来的SSL是zip格式的压缩包,解压后有如下内容

分别提供了几种web服务所需的ssl认证文件

nginx SSL配置
这里只拿nginx举例,编辑nginx配置文件

listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/key/xxx.pem;
ssl_certificate_key /usr/local/nginx/conf/key/xxx.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_session_cache shared:SSL:50m;
xxx.pem就是从StartSSL下载下来的NginxServer.zip中的文件xxx_bundle.crt(需要把后缀改成pem)

xxx.key 这是之前执行 openssl req -newkey rsa:2048 -keyout yourname.key -out yourname.csr时生成的key.

然后启动nginx ,输入密码(该密码是生成本地CSR时设置的)

大功告成
到这来,就可以使用https了,马上打开你的域名试试吧。

其实在网上也能找到很多StartSSL的申请流程。可大多都是之前的,界面与操作方式都有所改变。这篇提供了最新的StartSSL申请流程,以帮助大家更快的进行SSL认证。

看之前的教程,会告诉你,在第7步后不能马上下载SSL认证,StartSSL会有个客服审核的过程可能需要几小时,但现在的使用下来发现,现在已经没有这过程了,完成第7步就可以去认证的列表下载SSL认证。

微信小程序请求 wx.request :fail
本文的目的是为了微信小程序请求能使用https

所以,最后如果在调用微信wx.request接口时还是报错,可以参考这篇寻找解决之法。

微信小程序开发之https从无到有的更多相关文章

  1. 微信小程序开发之https服务器搭建三步曲

    本篇文章主要讲述3个方面的内容,如下: 1.SSL证书的获取 2.服务器 Nginx SSL 证书的配置. 3.如何兼容80端口和443端口以及为什么要同时兼容这两个端口. 1.SSL证书的获取 ht ...

  2. 微信小程序开发之picker选择器组件用法

    picker组件时一个从底部弹起的可滚动的选择器(嵌入页面滚动器组件picker-view查看https://mp.weixin.qq.com/debug/wxadoc/dev/component/p ...

  3. 微信小程序开发之formId使用(模板消息)

    基于微信小程序的模板消息:基于微信的通知渠道,我们为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.模板推送位置:服务通知模板下发条件:用户本人在微信体系内与页面有交互 ...

  4. 微信小程序开发之picker

    一.绑定简单数组 通过bindChange控制index,使得当前选择值发生改变 示例1 data: { Data: ['A','B'], Index: 0, }, <picker class= ...

  5. 微信小程序开发之scroll-view

    本文主要介绍通过scroll-view实现回至顶部,如下效果 一.页面代码 顶部的工具栏放一个查找按钮,滚动区域实现分页,目的就是为了点击上一页\下一页时,自动回到顶部. scroll-view必须指 ...

  6. 微信小程序开发之http到https的转化

    小程序从公布到现在已经过去好几个月了,本来从小程序发布出来就准备抱着微信的大腿进行一波小程序开发的,但是由于公司项目小程序暂时不支持,也就只能一直搁浅.过年过来偶然和朋友谈起小程序,觉的工作再忙也得找 ...

  7. 微信小程序开发之IOS/Android兼容坑(持续更新)

    一.时间转换问题: 这不只是小程序上面的问题是ios系统 都有这个问题就是new  Date("2017-06-16") 在IOS会出现NAN的情况所以对于时间转换需要另行封装,解 ...

  8. 微信小程序开发之tab导航栏

    实现功能: 点击不同的tab导航,筛选数据 UI:   js: data:{ navbar: ['半月维保', '季度维保', '半年维保',"年度维保"],    //count ...

  9. 微信小程序开发之animation动画实现

    1. 创建动画实例 wx.createAnimation(OBJECT) 创建一个动画实例animation.调用实例的方法来描述动画.最后通过动画实例的export方法导出动画数据传递给组件的ani ...

随机推荐

  1. 洛谷——P2819 图的m着色问题

    P2819 图的m着色问题 题目背景 给定无向连通图G和m种不同的颜色.用这些颜色为图G的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的.图的 ...

  2. kafka-0.8.1.1总结

    文件夹 一.         基础篇 1.     开篇说明 2.     概念说明 3.     配置说明 4.     znode分类 5.     kafka协议分类 6.     Kafka线 ...

  3. centos Linux 常用命令汇总

    CentOS 关闭防火墙 1) 永久性生效,重启后不会复原 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后复原 开启: ...

  4. 日常方便使用的Python脚本实现

    目录 文件批量重命名 bin文件合并 正文 1.python根据不同条件批量实现文件重命名 因为下载的电视剧名字比较乱,但却按照下载时间顺序依次排列,而手动重命名或者找软件太麻烦,我就自己实现了个: ...

  5. Atlassian Confluence安装

    前言 Confluence与Jira 由于线上jira和confluence之前互相关联,confluence的登录用户全部关联自jira的用户,confluence安装时会提示是否关联jira,由于 ...

  6. PHP生成excel(1)

    先到PHPExcel官网下载PHPExcel类 http://phpexcel.codeplex.com/ 把excel类包含进来,然后直接使用 <?php require "./PH ...

  7. BFS和DFS记录路径

    DFS记录路径的意义好像不大,因为不一定是最短的,但是实现起来却很简单. #include<math.h> #include<stdio.h> #include<queu ...

  8. android studio 非法字符: &#39;\ufeff&#39; 解决方式

    今天发现一个问题,就是从其它地方拷贝的代码到AS项目里面,木有语法 错误,可是就是执行不起来,老是报错"非法字符: '\ufeff' ",郁闷非常久.木有看到这个字符.最后查询了这 ...

  9. 梳理caffe代码common(八)

    因为想梳理data_layer的过程.整理一半发现有几个很重要的头文件就是题目列出的这几个: 追本溯源,先从根基開始学起.这里面都是些什么鬼呢? common类 命名空间的使用:google.cv.c ...

  10. iOS面试常见题

    1.耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13个人围坐一圈,从第一个人開始循环报数,数到三排除,最后剩下的人就是叛徒 int people[13] = {1,2,3, ...