请选择 进入手机版 | 继续访问电脑版

大众世界 world of demotic + 社区新动力

 找回密码
 注册会员
搜索
查看: 4783|回复: 4

[操作系统] 有了SSL证书,如何在IIS环境下部署https?

[复制链接]
发表于 2017-11-28 16:21:34 | 显示全部楼层 |阅读模式
昨天各位小伙伴都很开心的领取了自己的SSL证书,但是大部分小伙伴却不知道如何部署,也许是因为第一次接触SSL这种高端的东西吧,不过个人觉得就是懒懒懒。。。本来小编也挺懒的,但是答应了各位小伙伴的,那么今天就教大家如何在IIS环境下部署HTTPS证书吧。(建议在PC端阅读)
1、首先我们要取走我们的证书,保存在我们本地的电脑里,然后复制到服务器即可。
2、取走后接下来干嘛?当然是打开文件看看里面有些什么啊。我们找到IIS那个压缩包并解压。
3、解析得到pfx文件,也就是我们需要部署域名的证书文件。
4、小伙伴们可以在服务器上进行这些解析,不过也可以像小编一样在本地进行,然后在服务器内创建个文件夹,把需要的东西复制进去即可。(不要用剪切,你知道的,就算你不知道你也会去百度的)
5、然后打开服务器的IIS控制面板。
6、然后打开IIS的主页找到服务器证书栏,双击打开即可。
7、双击打开后,选择导入,导入我们刚刚解压得到的pfx文件,这个pfx文件就是你需要部署域名的那个文件。
8、这个时候我们带https打开我们部署的网站,现在显示的还是红色的。
9、现在我们去找到我们需要部署的网站,在服务器网站栏里,双击绑定。

10、然后我们点添加,添加,添加选择https,443端口。
11、这个时候我们通过浏览器打开https的网站。
12、绿了有没有?绿了,绿了啊。。。绿了啊。。。爱上一匹野马,可我的家里没有草原,可是它却绿了一片。。。安全小锁标志啊有没有。。。等等,我们是不是忘了点什么东西?当我们再打开www.domain.com的时候,还是灰的啊。还是没有绿啊,这种很想被绿的感觉有没有?(突然好心疼宝宝)。
13、各位宝宝莫慌,抱紧我,接下来小编带大家如何默认访问的是https路径。要做到默认访问https,也许就要做跳转吧,不过HTTPS貌似有个高大上的名字叫做URL重写。我们需要在IIS上下载个重写组件。
IIS7.5下载地址:
IIS 8安装URL重写参考文献 http://shiyousan.com/post/635646254870261696
下载好了之后会发现我们的IIS界面多了个URL重写的组件,开始都没有的,没错,我是刚刚下的。
利用URL重写唯一就是能够实现全站http跳转https。
所以,在部署之前,请检查网站根目录是否有web.config文件,如有,请先备份这里的web.config文件,因为以下的配置可能会和web.config里面跳转冲突,个人建议是直接删除处理,毕竟旧的不去新的不来,哈哈哈(建议先备份)。
14、然后继续下一步,双击打开,添加规则。
15、填写规则名称:Redirect to https,使用正规表达式,模式填写 (.*),然后接下来选择添加条件。第一个填{HTTPS} 与模式匹配 ^OFF$ ,第二个填{HTTPS_HOST} 与模式不匹配 ^(localhost) 。
16、操作类型选择重定向,然后选择属性为https://{HTTP_HOST}/{R:1} 重定向类型选择303。
17、最后一步,检查下点保存即可。
18、现在我们可以去看看我们的网站,直接输入www.domain.com
很强势很绿很装13有没有。
以上是教程是在IIS7 环境下实现的,很简单,很快,由于是我们部署的是中文版的SSL证书,所以会快点,如果小伙伴选择的是其他的SSL提供商或者英文版的可能会慢点,另外需要的资料可能也不一样,部署过程中需要的一个辅助工具是URL重写组件,其他环境还需要其他的组件,大家在部署过程中有什么疑问可以留言给小编,如果小编知道一定第一时间告诉给您。欢迎小伙伴们积极留言交流,小编在此先谢谢。
转自:
有了SSL证书,如何在IIS环境下部署https? - 今日头条(TouTiao.org)
http://www.toutiao.com/i6322704130540306946/
回复

使用道具 举报

 楼主| 发表于 2018-1-26 13:09:35 | 显示全部楼层
windows2008+iis7环境SSL部署https单/多站点https://www.west.cn/faq/list.asp?Unid=1450
https://bbs.wosign.com/forum.php ... =1668&highlight=IIS

看3楼,完美解决
回复

使用道具 举报

 楼主| 发表于 2018-11-1 16:39:22 | 显示全部楼层
IIS服务器多站点多域名同时部署多个不同SSL证书HTTPS实现方法

当一个https的请求到达IIS服务器时,https请求为加密状态,需要拿到相应的服务器证书解密请求。由于每个站点对应的证书不同,服务器需要通过请求中不同的主机头来判断需要用哪个证书解密,然而主机头作为请求的一部分也被加密。最终IIS只好使用第一个绑定到该IP:PORT的站点证书解密请求,从而有可能造成对于其他站点的请求失败而报错。
解决方法如下:
  • 第一种解决方案将每个https站点绑定到不同的端口。但是这样的话客户端浏览网页时必须手动指定端口,例如 https://site.domain.com:444
  • 第二种解决方案是为每个站点分配一个独立的ip,这样冲突就解决了,甚至主机头也不用添加了。
  • 第三种解决方案是使用通配证书。我们采用通配证书颁发给.domain.com,对于我们的示例中,应该采用颁发给.marei.com的证书,这样任何访问该domain的请求均可以通过该证书解密,证书匹配错误也就不复存在了。
  • 第四种解决方案是升级为IIS8,IIS8中添加的对于SNI(Server Name Indication)的支持,服务器可以通请求中提取出相应的主机头从而找到相应的证书。
方案分析:
方案1明显不太现实,我们不能让用户在访问我们的网站时还要指定端口号,一来不太好记,二来用户体验不好;
方案2虽然可行,但由于我们使用的是阿里云的服务器,是固定IP,没办法再给服务器再分配一个IP,故该方案不适合我们的场景;
方案3虽然可行,但我们使用的是域名型SSL证书,而且要购买通配型SSL证书的话,价格也比较贵,故该方案不适合我们的场景;
方案4,我们使用的服务器安装的操作系统是Windows Server 2012 R2,而该系统预装的就是IIS8,不是IIS8的可以自行升级为IIS8,在IIS8中,因为添加了对SNI的支持(具体概念及原理,读者可自行查阅相关资料,这里就不多说),所以可以很方便的解决我们所面临的问题。
现在就方案4做一下具体使用说明:
安装服务器证书,进入IIS,点击主机名,选择服务器证书,如下图:
点击右侧导入,如下图:
选择自己的证书文件,确定即可:
添加网站绑定,如下图
注意:类型选择https,端口号输入443,主机名填写自己的域名,“需要服务器名称只指示”前面的勾选框必须勾选,这个是解决问题的关键,SSL证书选择自己网站的证书(这里的选项是之前导入的证书);
6.确定后,该网站SSL证书绑定成功,可以使用https访问该网站,同样的方式,你需要配置另外一个网站(PS:除过主机名和SSL证书不一样外,其他配置都是一样的);
7.至此,两个网站都已配置成可以使用https访问;
8.测试是否成功:浏览器地址栏输入你要访问的地址:如https://www.domain.com,
如果浏览器中两个网站地址栏呈现类似以下状态,则配置成功:
如果一步一步操作到这里,那么恭喜你,你已经解决了这个问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
回复

使用道具 举报

 楼主| 发表于 2019-2-19 14:00:16 | 显示全部楼层
全部跳转https
web.config 加入代码

[XML] 纯文本查看 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<system.webServer>
		<rewrite>
			<rules>
				<rule name="Redirect to https" stopProcessing="true">
					<match url="(.*)" />
					<conditions>
						<add input="{HTTPS}" pattern="^OFF$" />
						<add input="{HTTPS_HOST}" pattern="^(localhost)" negate="true" />
					</conditions>
					<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
				</rule>
			</rules>
		</rewrite>
		<httpErrors errorMode="Detailed" />
	</system.webServer>
</configuration>

回复

使用道具 举报

 楼主| 发表于 2019-6-12 14:38:53 | 显示全部楼层
var matchStr =window.location.href;
        var reURL = /^(https):\/\/.+$/;
        if(!reURL.test(matchStr)){
            window.location.href = "https://www.echo.com/";
        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|Wod Inc. ( 蜀ICP备20000008号-8

GMT+8, 2024-3-28 16:37 , Processed in 0.090186 second(s), 28 queries .

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表