Linux在web下http加密和配置虚拟主机及动态页面发布
web服务器的数据加密
1.简介:由于http协议以明文方式发送,不提供任何方式的数据加密,也不适合传输一些重要的信息,如银行卡号、密码等,解决该缺陷设计了安全套接字层超文本传输协议https;
2.https的握手流程:一方为客户端,一方为服务端,客户端首先与服务端建立对话确认双方回应有效,发送Client Hello,包含TLS版本的加密套件,同时发布第一随机数;服务端接收到后向客户端发送Server Hello,包含TLS版本的加密套件,同时发布第二随机数,这时双方都有第一和第二随机数;服务端向客户端发送两条密钥,一条为公钥,一条为私钥;客户端接受到后做出对公钥的加密,并发送第三随机数,也就是该预主密钥(Client Key Exchange,Change Ciper Spec,Encrypted Handshake Message),这时双方同时拥有预主密钥,该握手建立,生成会话密钥建立联系。
3.nginx中配置https虚拟主机
安全加密过程
建立目录 ---mkdir /etc/nginx/certs
生成证书命令 ---openssl req -newkey rsa:2028 -nodes -sha256 -keyout /etc/nginx/certs/branh.org.key -x509 -days 365 -out /etc/nginx/certs/branh.org.crt
建立虚拟主机 ---cd /etc/nginx/conf.d 进入到conf.d
书写配置文件 ---vim /vhosts.conf
火墙放行 ---firewall-cmd --permanent --add-service=http
firewall-cmd --reload
强制访问加密
vim vhosts.conf ---编辑文件
server {
server_name login.branh.org;
rewrite ^/(.*)$ https://login.branh.org/$1 permanent;
}
^/(.*)$ ---表达式语法表示匹配浏览器地址栏中的所有内容
$1 ---地址保留xxx
permanent ---表示永久转换301.否则为302,临时的
4.搭建动态网站:通过数据库进行架构,动态网站除了设计网页外,还要通过数据库和程序来来使网站具有更多自动的和高级的功能;动态网页使用网页脚本语言,比如php、jsp等将内容动态存储到数据库,用户访问网站是通过读取数据库来动态生成网页的方法。
生成php测试页
mkdir -p /usr/share/nginx/html/php
vim /usr/share/nginx/html/php/index.php
内容如下
<?php
phpinfo()
?>
查找php包 --- dnf search php
安装php包 --- dnf install php.86_64 -y
进入conf.d里查找是否有php的配置文件
直接刷新nginx -s reload
软件包以及新文件要对其进行服务开启 systemctl enable --now php-fpm.service
配置web服务器对php页面的发布编辑文件 vim php-fpm.confserver {listen 80;server_name localhost;location ~ \.php$ {root /usr/share/nginx/html/php;fastcgi_pass unix:/run/php-fpm/www.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}