SSL证书卸载与SSI高级应用

简介:

1. 什么是SSI(Server Side Include)

SSI是服务器端页面包含,SSI工作在web服务器上,web服务器可以在一个页面中包含另一个页面,在用户端看来是只有一个页面。

2. 为什么使用SSI

我们又很多个子站,所有网站的header与footer都相同,还有一些block区块也存在共用。所以我们将这个共用的部分拆分,然后使用SSI按需包含。

3. 谁来负责SSI制作

稍有经验的美工人员都可以灵活使用SSI,程序员也可在短时间内学会SSI.

4. 怎么处理SSI包含

4.1. SSI 目录规划

			
/www/example.com
  |-- inc.example.com
  |-- www.example.com
  |-- images.example.com
  |-- acc.example.com
			
			

inc.example.com 是SSI共用文件,存放shtml文件。

www.example.com 是主站,会用到inc.example.com中的公共模块。

acc.example.com 与 www.example.com 类似。

注意

/www/inc.example.com是公共目录,不需要配置nginx,不能通过浏览器访问到该目录.

为什么要独立公共文件,而不是放在/www/www.example.com目录下面呢?我是为了方便发布代码,分开的好处是我可以针对inc.example.com做发布,而不影响其他项目。

由于include作用于web服务器的$document_root目录,例如当前$document_root是/www/example.com/www.example.com

			
<!--#include file="/example.shtml"--> 会引用 /www/example.com/www.example.com/example.shtml 文件,而不是操作系统根目录。
			
			

所以我们无法引用与www.example.com同级别的inc.example.com公共文件。例如:

			
<!--#include file="/www/example.com/inc.example.com/example.shtml"--> 会引用 /www/example.com/www.example.com/www/example.com/inc.example.com/example.shtml 文件,而不是操作系统根目录。
<!--#include file="../inc.example.com/example.shtml"--> 会引用 也无法正常工作。
			
			

这是服务器限制,如果SSI可能包含$document_root之外的文件,将会带来安全问题,例如

			
<!--#include file="/etc/passwd"-->
			
			

怎样能突破限制呢?我想出了别名,通过别名/include引用/www/example.com/inc.example.com目录中的公文模块,例如:

    location /include/ {
        root   /www/example.com/inc.example.com;
    }			
			

提示

Apache 与 Nginx 服务器的 SSI 实现稍有不同include file与include virtual也有差异。

4.2. www.example.com 静态内容服务器

			
# cat /etc/nginx/conf.d/www.example.com.conf

server {
    listen       80;
    server_name  www.example.com;

    charset utf-8;
    access_log  /var/log/nginx/www.example.com.access.log;
    error_log	/var/log/nginx/www.example.com.error.log;

    location / {
        root   /www/example.com/www.example.com;
        index  index.html;
    }

    location /include/ {
        root   /www/example.com/inc.example.com;
    }
    location /info/ {
	proxy_pass http://info.example.com/;
    }


    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
			
			

4.3. acc.example.com 动态网页服务器

			
server {
    listen       80;
    server_name  acc.example.com;
    charset utf-8;
    access_log  /var/log/nginx/acc.example.com.access.log;
    error_log	/var/log/nginx/acc.example.com.error.log;

    set $X_FORWARDED_FOR $http_x_forwarded_for;

    location / {
        root   /www/example.com/acc.example.com/htdocs;
        index  index.php;

        try_files $uri $uri/ /index.php?/$request_uri;
    }

    location /include/ {
        root   /www/example.com/inc.example.com;
    }

    location ^~ /images/ {
        rewrite /images/(.+)$ /$1 break;
        proxy_pass http://images.example.com;
        break;
    }
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /www/example.com/acc.example.com/htdocs/$fastcgi_script_name;
        include        fastcgi_params;
	fastcgi_param  DOCUMENT_ROOT /www/example.com/acc.example.com/htdocs;
    }
}
			
			

注意

该服务器不对外提供服务器,只允许下面的SSL卸载服务器通过反向代理连接

4.4. SSL卸载服务器

将SSL证书处理,机密与解密操作转移到该服务器,不让业务服务器处理证书的加密与解密操作,上面的HTTP对内访问,HTTPS对外访问,HTTPS通过反向代理连接HTTP服务器实现SSL证书卸载

			
upstream acc.example.com {
    server acc1.example.com;
    server acc2.example.com;
    server acc3.example.com;
}

server {
    listen       443;
    server_name  acc.example.com;

    ssl                  on;
    ssl_certificate      /etc/nginx/example.com/acc.example.com.pem;
    ssl_certificate_key  /etc/nginx/example.com/acc.example.com.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    location / {
	proxy_pass http://acc.example.com;
	proxy_http_version 1.1;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        break;
    }
}
			
			

4.5. /www/inc.example.com 公共包含文件

/www/inc.example.com/include/cn/config.html

			
<!--#set var="HTML_HOST" value="http://www.example.com"-->
<!--#set var="INFO_HOST" value="http://info.example.com"-->
<!--#set var="NEWS_HOST" value="http://news.example.com"-->
<!--#set var="IMG_HOST" value="http://images.example.com"-->
<!--#set var="JS_HOST" value="http://images.example.com"-->
<!--#set var="CSS_HOST" value="http://images.example.com"-->

<!--#if expr="${X_FORWARDED_FOR}"-->

<!--#set var="ACC_HOST" value="https://myid.example.com"-->
<!--#set var="IMG_HOST" value="/images"-->
<!--#set var="JS_HOST" value="/images"-->
<!--#set var="CSS_HOST" value="/images"-->

<!--#else -->

<!--#set var="ACC_HOST" value="http://myid.example.com"-->
<!--#set var="IMG_HOST" value="http://images.example.com"-->
<!--#set var="JS_HOST" value="http://images.example.com"-->
<!--#set var="CSS_HOST" value="http://images.example.com"-->

<!--#endif -->
			
			

${X_FORWARDED_FOR} 用来判断用户是通过http还是https进入,由于images.example.com 没有SSL证书,需要有区分的载入图片的地址。/images 通过反向代理连接http://images.exampe.com.

4.6. 引用包含文件实例

			
<!--#include file="/include/cn/config.html"-->
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="shortcut icon" href="<!--#echo var="IMG_HOST"-->/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="<!--#echo var="CSS_HOST"-->/styles/common.css" />
<script type="text/javascript" src="<!--#echo var="JS_HOST"-->/scripts/jquery-1.7.1.min.js"></script>
</head>
<body>
<div id="homeNav"><!--#include virtual="/include/cn/header.html" --></div>
<a href="<!--#echo var='ACC_HOST'-->/register/" class="real">
	<h3><img src="<!--#echo var="IMG_HOST"-->/new/ico_real.png" />注册账户</h3>
</a>
</body>
</html>
目录
相关文章
|
6月前
|
Web App开发 安全 算法
SSL证书一体化政务服务平台应用案例
近年来,我国政务服务数字化水平不断提升,数字政府建设取得积极成效。依托全国一体化政务服务平台,政务服务效能不断提升
305 0
|
8月前
|
算法 安全 数据建模
沃通SSL证书在中国载人航天领域的应用
沃通SSL证书为中国载人航天工程官方网站及相关网站系统提供HTTPS加密及网站可信身份认证,保护数据传输安全、保障通信主体身份可信。
429 1
|
8月前
|
Web App开发 供应链 算法
阿里云平台WoSign SSL证书应用案例
阿里云平台WoSign SSL证书支持绑定单域名、通配符域名,并提供国密SM2算法、RSA算法供用户选择,能够满足阿里云平台用户的不同应用需求。
1082 0
阿里云平台WoSign SSL证书应用案例
|
9月前
|
安全 算法 数据可视化
沃通SSL证书在高校数字化安全中的应用
沃通SSL证书为河南城建学院官网及各类信息系统提供HTTPS加密及网站可信身份认证,保护数据传输安全、保障通信主体身份可信。
268 0
沃通SSL证书在高校数字化安全中的应用
|
安全 算法 Java
住房公积金管理中心网站SSL证书应用案例
为提升住房公积金网络信息安全水平、维护住房公积金信息数据安全,目前已有十余个省市住房公积金管理中心网站,选用沃通SSL证书实现HTTPS加密
107 0
住房公积金管理中心网站SSL证书应用案例
|
安全 网络安全 数据安全/隐私保护
直击金融行业的国产SSL证书应用
金融行业网络安全的注意事项
407 0
直击金融行业的国产SSL证书应用
|
安全 算法 网络安全
SM2 国密算法SSL证书应用于HTTPS加密,如何实现?
服务端如何实现基于国密算法的SSL加密连接呢?如何解决国密算法的浏览器兼容性问题?
5030 0
|
11月前
|
域名解析 网络协议 算法
阿里云申请免费ssl证书(HTTPS) 保姆级教程
阿里云申请免费ssl证书(HTTPS) 保姆级教程,阿里云SSL免费证书在哪申请?一个阿里云账号一年可以申请20张免费SSL证书,很多同学找不到免费SSL的入口,阿小云来详细说下阿里云SSL证书免费申请入口链接以及免费SSL证书申请流程
377 0
|
15天前
|
域名解析 网络协议 应用服务中间件
阿里云SSL证书配置(HTTPS证书配置)
该内容是一个关于如何在阿里云上准备和购买SSL证书,以及如何为网站启用HTTPS的步骤指南。首先,需要注册并实名认证阿里云账号,然后在SSL证书控制台选择证书类型、品牌和时长进行购买。申请证书时填写域名信息,并进行DNS验证,这包括在阿里云域名管理板块添加解析记录。完成验证后提交审核,等待证书审核通过并下载Nginx格式的证书文件。最后,将证书配置到网站服务器以启用HTTPS。整个过程涉及账户注册、实名认证、证书购买、DNS设置和证书下载及安装。
77 0
|
26天前
|
前端开发 应用服务中间件 网络安全
http转为https,ssl证书安装及nginx配置
http转为https,ssl证书安装及nginx配置
42 1