一、环境准备
192.168.253.0/24段的地址用于访问互联网,在VMware Workstation中NAT类型,下载相关软件包并且对外提供服务。
172.16.253.0/24,用于两台主机内部通信使用。在VMware Workstation中网卡类型选为LAN区段。
二、主机配置
(一)在主机Apache
yum install epel-release -y
yum install httpd -y
systemctl start httpd
touch /var/www/html/index.html //创建index.html
echo hello world > /var/www/html/index.html
(二)在主机Nginx
yum install epel-release -y
yum install nginx -y
systemctl status nginx
systemctl enable nginx
systemctl start nginx
创建或者修改/etc/nginx/conf.d/default.conf 配置文件,没有就创建,有就修改。
vim /etc/nginx/conf.d/default.conf
server {
listen 7031; //设置nginx监听的端口为7031
server_name jiating.com;
location / {
proxy_pass http://172.16.253.129:80; //Apache主机的地址和监听的端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
如下图
(三)测试
打开浏览器访问http://192.168.253.130:7031,展现的就是http://172.16.253.129的界面。反向代理配置成功。
但是我直接访问http://172.16.253.129:80是访问不到的,也很好的保护了真实业务。
三、Apache主机启用ssl
http://192.168.253.130:7031,访问后端代理的apache,还不是ssl,需要在主机apache创建证书。
(一)安装ssl模块
yum install openssl -y
yum install mod_ssl -y
(二)创建私钥和证书
mkdir ~/ssl
cd ~/ssl
创建私钥
使用openssl genpkey命令生成RSA私钥,这里使用2048位长度。
openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048
创建证书签名请求(CSR)
使用生成的私钥创建CSR,需要提供一些证书信息,如国家、省份、城市、组织名等。
openssl req -new -key server.key -out server.csr
创建自签名证书
使用私钥和CSR生成自签名证书,有效期可以设置为一年或更长时间。
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
(三)修改httpd的ssl.conf文件
指定证书和密钥文件的位置
vim/etc/httpd/conf.d/ssl.conf
systemctl restart httpd //重启httpd
访问https://192.168.253.129
然后我们就可以禁用访问80端口
vim /etc/httpd/conf/httpd.conf
注释掉 #Listen 80
就可以只访问443,无法访问到80端口。
四、OpenSSL配置自签名证书
(一)在Nginx主机安装openssl
yum install openssl
(二)创建工作目录
mkdir ~/ssl
cd ~/ssl
(三)生成私钥
使用openssl genpkey命令生成RSA私钥,这里使用2048位长度。
openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048
(四)创建证书签名请求(CSR)
使用生成的私钥创建CSR,需要提供一些证书信息,如国家、省份、城市、组织名等。
openssl req -new -key server.key -out server.csr
(五)创建自签名证书
使用私钥和CSR生成自签名证书,有效期可以设置为一年或更长时间。
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
#@# (六)修改nginx.conf文件
vim /etc/nginx/nginx.conf
指定证书和密钥文件的位置
ssl_certificate “/root/ssl/server.crt”;
ssl_certificate_key “/root/ssl/server.key”;
systemctl restart nginx //重启nginx
访问https://192.168.253.130
备注
Vmware workstation LAN区段用途
创建好LAN区段后,虚拟机中会多出一个网卡ens36,但是没有对应的配置文件,需要手动创建配置文件并且添加IP信息。
vim /etc/sysconfig/network-scripts/ifcfg-ens36
TPROTO="static"
DEVICE="ens36"
IPADDR=172.16.253.130
NETMASK=255.255.255.0
NBOOT="yes"