第一步:申请购买https(ssl证书)
- 去阿里云上直接申请的免费SSL证书
(PS:国内其他代理申请平台通过率不是很高,起先尝试过自己去神奇,也在西数代理申请过,都没有成功)
阿里云申请地址:https://www.aliyun.com/product/cas?spm=5176.10695662.782131.1.3ae471e9N6ocaQ
申请免费版:(如下图)
(PS:当然你也可以选择购买阿里云的收费版)
购买成功后,直接进入SSL管理后台: 点击证书申请=》按照步骤进行验证(验证教程阿里云有提供)=》等待一段时间=》审核通过=》下载对应系统的文件
(PS:如果未通过,调整后重新申请)
第二步:windows server 2008服务器+IIS7安装SSL证书(https多站点解决方案)
我服务器配置:Windows server 2008 R2 (原始IIS 7.5不支持https 多站点配置,也就是一个服务器无论有多少站点,只允许一个网站配置https)
解决方案:
- 为每一个https站点配置不同的访问端口,如443,444,445等,但是除了默认的443其它均要在域名后面添加端口号如:www.lixuepeng.com:445;该方法直接PASS;
- 为每一个站点配置不同的IP,目前造价过高;直接PASS,对于很考虑独立IP的域名(SEO配置)可以考虑该项;
- 购买收费版的统配证书,如一个证书支持多个域名;(收费较贵)-我也暂时不考虑;
- 把服务器升级为IIS8 ,那么windows系统也要升级为Windows server 2012 ;很明显会花费大量时间,暂且不考虑;
- 第五种解决办法:安装Nginx 反向代理实现IIS7.5 多站点配置https;
以下是第五种解决办法:
第五种解决办法如下(移步第三方):https://www.west.cn/faq/list.asp?unid=1450 (包括http301跳转到https的服务器以及单站解决方案)
第三步:安装配置多个站点支持https (windows server 2008+IIS7)
重复第一步、第二步的操作;
疑难1:网站能正常访问https,但是无法加载HTTP下的CSS与各类资源文件
现状:网站能正常访问,但是无法加载某些https下的CSS、JS、img等文件,导致页面显示错乱;如你的模板没有问题,那么多检查以前的老旧页面以及文章;
病因:默认https下,不调用http任何资源;这需要服务器给予浏览器指示希望浏览器加载http资源;
如图:http下的CSS文件未加载;
报错内容:
Mixed Content: The page at 'https://www.lixuepeng.com/' was loaded over HTTPS, but requested an insecure favicon 'http://www.lixuepeng.com/wp-content/uploads/2019/06/favicon.ico'. This request has been blocked; the content must be served over HTTPS.
解决方案:
- 把模板文件,以及其他所有文件在http下的调用全部修改过来;(几乎不可能,遇到网站老旧内容过多的更不可能)
- 让浏览器能自动识别,需要配置head头;---最佳解决方案;
详细流程:
- 打开Nginx 文件夹安装目录
- 打开conf文件夹
- 打开vhost文件夹
- 打开你要配置的域名文件 添加一段代码(用记事本打开添加)
- 重启Nginx服务器;
代码:(一个标点符号都不能少)
add_header Content-Security-Policy "upgrade-insecure-requests;connect-src *";
|
疑难2:wordPress后台无法进入:提示,重定向的次数过多
造成“ERR_TOO_MANY_REDIRECTS 将您重定向的次数过多”这种错误的原因其实就是 http 和 https 之间的访问重定向导致的
解决方案:
通过登录网站FTP或者网站主机的文件管理,找到网站根目录下的 wp-config.php 文件,将以下代码添加的该文件,即可完美解决此问题:
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
疑难3:http下的网页301跳转到https
设置301跳转
方法一:nginx站点配置文件中添加以下代码
server
{
listen 80;
server_name abc.com;
rewrite ^(.*) https://www.abc.com$1 permanent; # abc.com对应修改为您自已的域名
}
方法二:web.config中添加以下代码
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="301" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" />
</conditions>
<action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" /> #www.abc.com对应修改为您自已的域名
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
别忘记301跳转成功与否的检查:
检查地址:http://tool.chinaz.com/pagestatus/
拿你的网站首页,栏目页,内容页分别检查下;
写在最后:
- 未来有机会把页面模板存在http的调用全部替换成https ,同时注意模板调用规范,不要写死,直接调用后台主域名URL配置即可;
- 未来有机会把老旧页面的http替换成https;
- 未来有机会希望各大建站厂商、模板制作者,包括协议在内 所有内部调用的头部部分均采用调用方式;