Linux系统下的apache中关于CGI 、WSGI、 SSL安装证书及其私钥、网页重写(https)
CGI动态页面与数据库交互(perl语言)
通用网关接口(CGI)是网站上放置动态内容的最简单的方法。CGI脚本可用于许多目的,但是谨慎控制使用哪个CGI脚本以及允许谁添加和运行这些脚本十分重要。编写质量差的CGI脚本可能为外部攻击提供了破坏网站及其内容安全性的途径。因此,在Web服务器级别和SElinux策略级别,都存在用于限制CGI脚本使用的设置。
PHP语言支持
cd /var/www/html/ vim index.php 在文件中添加下面内容 <?php phpinfo(); ?>
在浏览器输入172.25.254.251/index.php没有报错,但是页面为空白,说明此时不支持php,动态界面
yum install php cd /etc/httpd/conf.d/会出现php.conf systemctl restart httpd
重新测试,出现如下界面
mkdir /var/www/html/cgi cd /var/www/html/cgi/ vim index.cgi ##可以在手册上查看CGI chmod +x index.cgi ##此时index.cgi中为静态命令
./index.cgi ##执行,静态 将vim index.cgi中的命令变为 print `date` ./index.cgi ##执行动态
在浏览器中输入 172.25.254.251/cgi/index.cgi ##只显示脚本里面的程序,但是并不执行
cd /var/httpd/conf.d/ vim default.conf 在文件中写入: <Directory "/var/www/html/cgi"> options +ExexCGI AddHandler cgi-script ; </Directory>
在浏览器中输入 172.25.254.251/cgi/index.cgi ##重新测试
物理机访问虚拟机的https时要保证防火墙开启443开启这个端口,或者直接关闭防火墙
WSGI 提供python语言支持
WSGI 的全称是 Web Server Gateway Interface, 是为 Python 语言定义的 Web 服务器和 Web 应用程序之间的一种简单而通用的接口。类似的协议还有 CGI, FastCGI, uWSGI 等。该协议保证了 Python Web 应用和服务器之间的交互的通用性。WSGI支持多线程同时在线操作。
WSGI的配置
mkdir /var/www/html/wsgi/ cd /var/www/html/wsgi/ 在发布目录中写入发布文件 ##在这里我们直接下载脚本文件,用于测试即可 ##该脚本文件是一个显示系统时间的文件
cd /etc/http/conf.d/ vim vhost.conf 在文件中写入 <VirtualHost *:80> SeverName www.westoswsgi.com WSGISriptAlias / /var/www/html/wsgi/sript.wsgi ##脚本存放的路径,如果路径不正确,会出现Not Found的报错 </VirtualHost>
systemctl restart httpd ##会出现报错,原因是缺少wsgi的插件 yum install mod_wsgi systemctl restart httpd ##正常重启
vim /etc/hosts ##本地域名解析文件 172.25.254.251 www.westoswsgi.com
测试
在网页中输入www.westoswsgi.com进行测试,出现以下界面则成功
配置HTTPS
apache的ssl没有自签名证书
yum install -y mod_ssl systemctl restart httpd
在浏览器中输入以下网址
https://172.25.254.251 ##会提示网站安全性
进行下列操作,生成没有自签名证书
查看确认是否生成证书
自定义自签名证书
如果加密的通信非常重要,而经过验证的身份部重要,管理员可以通过生成self-signed certificate来避免与认证机构进行交互所带来的复杂性。
使用genkety实用程序(通过crypto-utils软件包分发),生成自签名证书及其关联的私钥。为了简化起见,genkey将在“正确“的位置(/etc/pki/tls 目录)创建证书及其关联的密钥。相应地,必须以授权用户(root)身份运行该实用程序
配置步骤在进行配置自定义自签名证书之前,需要将上面的没有自签名的证书删掉
1.安装软件包进行分发
yum install crypto-utils genkey www.westos.com ##生成www.westos.com这个域的钥匙,钥匙生成器
genkey www.westos.com ##生成www.westos.com这个域的钥匙,钥匙生成器
执行上述命令后出现以下界面
2.安装证书及其私钥
vim /etc/httpd/conf.d/ssl.conf 在子配置文件中加入安装证书及其私钥的位置 SSLCertificateFile 位置 SSLCertificateKeyFile 钥匙位置
测试
在浏览器中输入
https://www.westos.com(域名已经解析)可以查看到自定义自签名证书
————————————————————————————————————————————————————————
上述自签名证书虽然可以生效,但是却只能在用户输入
https://时才会访问,如果用户直接输入www.westos.com还是无加密页面,有潜在的安全隐患。
————————————————————————————————————————————————————————
上述问题的解决方法就是网页重写
网页重写
把所有80端口的请求全部重定向由https来处理
重新生成证书
输入genkey命令后进行上述一样的选择操作
cd /etc/httpd/conf.d/ cp news.conf login.conf vim login.conf ##将文件中的news全部替换为login即可
mkdir -p /var/www/virtual/login/html vim /var/www/virtual/login/html/index.html ##网页中要显示的资源
——————————————————————————————————————————————————————————
本地域名解析
在浏览器中输入:
login.westos..com(对应在login.conf里的SeverName)
发现还是无法重定向 原因是并没有在配置文件中告诉程序要把所有80端口请求全部重定向到https来处理。
————————————————————————————————————————————————————————
vim /etc/httpd/conf.d/login.conf 在文件中继续增加: <VirtualHost *:80> SeverName login.westos.com RewriteEngine On RewriteRule ^(/.*)$https://%{HTTP_HOST}$1 [redirect=301] </VirtualHost> ^(/.*):表示用户在浏览器中输入的所有字符 $1 :表示 ^(/.*)的值 redirect=301:表示永久重定向 %{HTTP_HOST} :表示客户请求主机
测试
在浏览器中输入
login.westos.com(域名已经解析)可以看到http重定向到https
查看证书已经生成
进行上述在浏览器中添加证书的操作
网页重写操作成功
- Linux下https加密认证之系统生成证书&自己生成证书及网页重写实现自动加密
- Ubuntu Apache https设置及阿里云SSL免费证书安装
- Linux运维笔记-文档总结-通过ssl加密的HTTPS超文本传输协议和网页重写
- linux安装apache支持https(ssl)
- wxzh001,进来看关于APACHE+PHP+MYSQL+SSL的LINUX下安装配置(转自奥索)
- HTTPS证书安装 - SSL certificate from Godaddy 安装到Ubuntu上的Apache (精简步骤)
- Linux 的Apache服务之https与网页重写
- Ubuntu 16.04 Apache https设置及SSL免费证书安装
- apache服务器安装配置ssl数字证书,https访问
- linux apache安装https证书
- Apache SSL安装与配置教程(Linux系统)
- Android开发中关于Xwalkview加载https网页出现安全证书ssl问题
- 关于安装linux系统屏幕刷新率问题的详细介绍
- 关于windows xp 安装vmware虚拟机 并安装linux系统(centos5.2)
- StartSSL 免费证书申请步骤以及Tomcat和Apache下的安装
- Red Hat Enterprise Linux 5 系统中安装Apache
- wdOS系统下源码编译安装LAMP环境(linux+apache+php+mysql)
- 在linux系统下安装配置apache服务器
- linux系统下查看nginx、apache、mysql和php已经安装的编译参数查看
- Linux上安装https (ssl) 服务