缘起

1、从事互联网十来年了,一直想把自己的从事开发过程遇到的问题给写出来,分享给大家。可是可是这只是个种想法,想想之后就放下了,写出来的类文章是少之又少。古人说无志之人常立志,有志之人立长志。今天,就从学习小程序开始,记录在学习过程中的遇到点点滴滴,先做“无志之人常立志”吧。

强调的是,微信小程序开发,我也是从0到1的过程,肯定会有错误或遗漏,还望给指导指导,让我的学习知识更完善,再此先谢过了。

2、bitcms开源内容管理系统也发布了,运营对一个程序老猿来说,确实是个艰巨的任务。自己的想法很多,园子里的朋友也给了不少建议。

总结下来有二:一是bitcms内容管理系统不能是一个孤岛,要有围绕bitcms周边要有相应的应用。像短信接口,公众号接口,支付接口等。这些都是平常工作开发中常用到的,现在只需时间来整理优化后放出来;二是要推广。某度、某3、某条等付费推广,对屌丝作者我来说,想想都是奢饰。那只剩下一条路了,自己写应用技术软文,来慢慢浇灌吧。本小程序学习系列学习笔记,应该也算是一个吧。

下面来进入正题:IIS下SSL环境搭建

刚接触小程序的时候发现后台服务必须是https的时候。心想,腾讯这是要干吗,这是要增加接入门槛吗?随后对https的深入了解,慢慢发现腾讯的苦衷,互联网的安全,并不是只是程序员要考虑的,安全要从基础运行环境的开始。

一、SSL证书申请

提供SSL证书申请服务的有很多,大部分云服务提供商基本上都可以,价格也是从千到万应有尽有。作为屌丝,咱们肯定不是他们的菜。还好,有免费DV可以0元申请。对于安全要求不高,只是接入https的完全可以满足使用。对不差钱或对数据安全要求高的,推荐申请收费SSL证书。如有土豪愿意给我提供收费版SSL证书,请联系我,先谢过了。

下面是景安申请免费DV SSL证书的截图。申请填写域名信息并验证通过后,就可以下载证书了。下载证书后有个生成的个证书密码一个记下。证书导入IIS的时候需要使用这个密码。

1、申请证书

2、绑定域名

3、下载证书

下载的证书,景安的证书还是比较全的,apache,iis等都有,readme.txt是证书密码文本,放入一个压缩包内,避免丢失。

二、安装证书

服务器环境是:windows server 2008 r2 + IIS7

1、安装证书,打开IIS,如下图。找到服务器证书,打开

2、导入证书,选择证书包里的iIS下证书文件,输入下载证书时的证书密码,请可以确定提交了。证书安装完成。

3、网站设置,添加网站或已有网站添加新绑定。绑定类型选择https,SSl证书选择刚才安装的证书,提交搞定。刚开始添加https绑定的时候,挺纳闷为什么主机名不让填写。后来果资料得知:原来IIS7一个服务器只允许一个https绑定。像bitcms.net主域名绑定https,不受影响。如果https绑定的是一个二级域名,只有修改IIS配置文件了

用记事本打开文件:C:\Windows\system32\inetsrv\config\applicationHost.config 注:如果系统盘不在C盘,请参照修改路径

找到

 <site name="bitcms.net" id="4" serverAutoStart="true">
<application path="/" applicationPool="bitcms.net">
<virtualDirectory path="/" physicalPath="D:\www\bitcms.net" />
</application>
<bindings>
<binding protocol="https" bindingInformation="*:443:" />
</bindings>
</site>

修改为

 <site name="bitcms.net" id="4" serverAutoStart="true">
<application path="/" applicationPool="bitcms.net">
<virtualDirectory path="/" physicalPath="D:\www\bitcms.net" />
</application>
<bindings>
<binding protocol="https" bindingInformation="*:443:bitcms.net" />
</bindings>
</site>

4、网站SSL设置,打开SSL设置

勾选要求SSL,客户证书,勾选接受。

三、301跳转设置

经过上面证书安装和网站设置,SSL网站基本上算是已经布置完成了。但是有一点不完美的地方,就是你在浏览器地址栏里输入域名如:bitcms.net,还是打不开网站,必须加上https://,这体验太不好了吧。那再设置一个301跳转,就完美了。下面就开始设置301跳转。如果您的证书使用的是二级域名,301跳转就不用设置了。

新建一个网站,物理路径最好单独设置一个文件夹。 添加普通http绑定,如下图绑定bitcms.net和www.bitcms.net两个域名。

打开HTTP重定向,设置如下图。将请求重写向到此目标填写:https//bitcms.net$S$Q,是域名后加$S$Q。重定向行为勾选第一个,状态代码选择永久(301)。

四、后记

至此,IIS环境下安装SSL证书已经完成。下面说说我在设置过程中遇到的坑。

1、网站SSL设置的时候客户证书,想当然的选择”必须“的啊,结果网站打开,浪费了很多时间在上面。

2、设置301重定向的坑。大家也看这个服务器上的另一个网站也设置了301,请把两个301物理路径些向一个地址,结果填写重定向些目标的时候,修改一个,另一个也跟着变。这应该是IIS BUG吧。

3、还有一个坑是,网上很多教程是从Internet属性->内容->证书里添加SSL证书,这个在IIS7中是不行的。

跟我一起,利用bitcms内容管理系统从0到1学习小程序开发:一、IIS下SSL环境搭建的更多相关文章

  1. 新能力 | 云开发CMS内容管理系统,5分钟搞定小程序管理后台

    小程序·云开发的云调用能力,让用户可以免鉴权快速调用微信的开放能力,极大节约了开发成本.现在,大家期待已久的云开发 CMS 内容管理系统,终于上线啦!顺便提示,接下来还可以二次开发哦! 云开发 CMS ...

  2. bitcms内容管理系统 3.1版源码发布

    开源bitcms内容管理系统采用ASP.NET MVC5+MySql的组合开发,更适应中小型系统低成本运行. bitcms的主要功能 1.重写了APS.NET MVC的路由机制.bitcms使用路由参 ...

  3. Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作

    Visual Studio 2017中使用正则修改部分内容   最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...

  4. [web开发] 利用微信小程序开发上海大学失物招领平台

    我从开始学微信小程序到最后完全写完这个小程序耗时四天,可以说开发难度非常之低,门槛也非常低,之前从来没接触过微信小程序,重新写下开发记录. 先放图: 1.前端开发 前端我用到了iview的ui框架,因 ...

  5. 2-微信小程序开发(开发界面说明,按钮点击切换显示内容)

    说一个功能,大家在用微信实现控制设备的时候,是不是都在为绑定设备发愁. 我看了很多厂家的微信控制,大部分都只是可以用微信给设备配网,但是没有做用微信绑定的. 一般做绑定都是用设备的MAC地址. 这里我 ...

  6. 小程序开发 解析内容中unicode转中文编码显示问题

    如果对你有帮助的话麻烦点个[推荐]~最好还可以follow一下我的GitHub~感谢观看! 小程序后台返回数据的时候,html内容是经过unicode编码的不能直接显示,里边全是类似&#xxx ...

  7. 小程序开发中,纯css实现内容收起折叠功能

    不多说,直接上代码: wxml页面: <!--收起折叠 begin--> <view style='width:100%;background:#fff;border-top:1px ...

  8. bitcms-比特内容管理系统 3.1版源码发布

    bitcms比特内容管理系统,经过几个版本的更新和客户的使用已经基本上完善了.下面主要介绍下他的运行环境和功能. 一.运行环境:windows server+IIS bitcms采用Entity Fr ...

  9. 利用WordPress REST API 开发微信小程序从入门到放弃

    自从我发布并开源WordPress版微信小程序以来,很多WordPress网站的站长问有关程序开发的问题,其实在文章:<用微信小程序连接WordPress网站>讲述过一些基本的要点,不过仍 ...

随机推荐

  1. windows平台下基于QT和OpenCV搭建图像处理平台

        在之前的博客中,已经分别比较详细地阐述了"windows平台下基于VS和OpenCV"以及"Linux平台下基于QT和OpenCV"搭建图像处理框架,并 ...

  2. php+jQuery+Mysql找回密码----ThinkPHP

    最近用ThinkPHP做了一个邮箱找回密码功能,在遭遇了N个bug之后终于做成了,下面分享一下邮箱找回密码功能的实现: 邮箱找回密码实际上就是在用户通过验证之后重置密码的过程,一般开发者会在验证用户信 ...

  3. javascript设计模式——装饰者模式

    前面的话 在程序开发中,许多时候都并不希望某个类天生就非常庞大,一次性包含许多职责.那么可以使用装饰者模式.装饰者模式可以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象.本文将 ...

  4. Java 面试宝典

    1. 类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,他们的执行顺序 答:先静态.先父后子. 先静态:父静态 > 子静态 优先级:父类 > 子类 静态代码块 ...

  5. Python+Selenium webdriver Api

    # -*- coding: utf-8 -*- from selenium import webdriver browser = webdriver.Firefox() #browser.set_wi ...

  6. git实用攻略(二)

    最近团队的版本控制从svn切换到了git,虽说已经使用git有2年多了,也写了一个实用攻略,但是github上的项目使用经验和公司内部团队协作的使用经验还有很多不同.补充下新的使用体会. 首先还是看一 ...

  7. Java 模拟栈结构

    栈和队列: 通常是作为程序猿的工具,用于辅助构思算法.生命周期较短,执行时才被创建 訪问受限.在特定时刻,仅仅有一个数据可被读取或删除 是一种抽象的结构.内部的实现机制.对用户不可见.比方用数组.链表 ...

  8. vector删除元素与清除内存空洞

    问题:stl中的vector容器经常造成删除假象,这对于c++程序猿来说是极其讨厌的,<effective stl>大师已经将之列为第17条,使用交换技巧来修整过剩容量. 内存空洞这个名词 ...

  9. Swift 3.0在集合类数据结构上的一些新变化

    一.Array数组的更改 array数组中修改的API示例如下: //创建大量相同元素的数组//创建有10个String类型元素的数组,并且每个元素都为字符串"Hello"//sw ...

  10. 【MySQL】数据库字段类型

    1.数值型 整型 TINYINT SMALLINT MEDIUMINT INT BIGINT 浮点型 FLOAT(m,n) - m表示总位数,n表示小数位数. DOUBLE(m,n) DECIMAL( ...