1.从Apache服务器和Nginx服务器差不多,都可以做反向代理服务器
2.首先需要拆解下步骤:
2.1 Apache 支持Https;
2.2 Apache 代理转发;
https_Tomcat__5">2.3 Apache https 代理转发Tomcat ;
3. 具体的步骤
步骤一:下载SSL证书
-
登录阿里云数字证书管理服务控制台。
-
在左侧导航栏,单击SSL 证书。
-
在SSL 证书页面,定位到目标证书,在操作列,单击下载。
-
在服务器类型为Apache的操作列,单击下载。
https://img-blog.csdnimg.cn/direct/0ac5124f5f274284881e318581ee5cbe.png" alt="在这里插入图片描述" />
5.解压缩已下载的SSL证书压缩包。根据您在提交证书申请时选择的CSR生成方式,解压缩获得的文件不同,具体如下表所示。
https://img-blog.csdnimg.cn/direct/5c72a11a66f8448e9b9ad3fe66e3aa71.png" alt="在这里插入图片描述" />
https://img-blog.csdnimg.cn/direct/f67b09e4ce0e418c97b25a3695233c6b.png" alt="在这里插入图片描述" />
步骤二:在Apache服务器安装证书
1. 执行以下命令,在Apache的安装目录下创建一个用于存放证书的cert目录。
a.进入Apache的安装目录。
cd /etc/httpd/
#使用yum安装Apache的默认安装目录。如果您手动修改过该目录或使用其他方式安装的Apache,请根据实际配置调整。
b.创建cert目录。
mkdir cert #创建证书目录,命名为cert。
2.将证书文件和私钥文件上传到Apache服务器的证书目录(/etc/httpd/cert)。
3.编辑Apache配置文件httpd.conf和ssl.conf,修改与证书相关的配置。
a. 找到LoadModule ssl_module modules/mod_ssl.so(用于加载mod_ssl.so模块启用SSL服务) 和Include conf.modules.d/*.conf(用于加载SSL配置目录),并检查是否被注释,如果被注释,请删除#注释。
LoadModule ssl_module modules/mod_ssl.so:位于本文中**ssl.conf**该配置文件下。Include conf.d/*.conf : 位于本文中**httpd.conf**该配置文件下。
b.未找到 文件,则可执行yum install -y mod_ssl命令安装,httpd -M | grep ‘ssl’ 命令检查mod_ssl.so是否安装成功
如果仍未找到以上参数,请确认您的Apache服务器中是否已经安装mod_ssl.so模块。如未安装,可执行yum install -y mod_ssl命令安装,安装后,可执行httpd -M | grep 'ssl'命令检查mod_ssl.so是否安装成功。
c.执行以下命令,打开ssl.conf配置文件。
vim /etc/httpd/conf.d/ssl.conf
d.在ssl.conf配置文件中,定位到以下参数,按照中文注释修改
<VirtualHost *:443>
#修改为申请证书时绑定的域名。 ServerName www.pwx.com# 古籍检索系统 ,重定向到tomcat 中古籍检索系统项目
ProxyPass /record http://127.0.0.1:8080/record
ProxyPassReverse /record http://127.0.0.1:8080/record#虚拟仿真,重定向到tomcat 中虚拟仿真项目
ProxyPass /wave http://127.0.0.1:8080/wave
ProxyPassReverse /wave http://127.0.0.1:8080/wave# 公众号,重定向到tomcat 中 公众号项目
ProxyPass /pwxaccount http://127.0.0.1:8080/pwxaccount
ProxyPassReverse /pwxaccount http://127.0.0.1:8080/pwxaccount# 将domain_name_public.crt替换成您证书文件名。SSLCertificateFile cert/domain_name_public.crt # 将domain_name.key替换成您证书的密钥文件名。SSLCertificateKeyFile cert/domain_name.key# 将domain_name_chain.crt替换成您证书的证书链文件名。SSLCertificateChainFile cert/domain_name_chain.crt #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。SSLEngine on# 添加SSL协议支持协议,去掉不安全的协议。SSLProtocol all -SSLv2# 修改加密套件。SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES</VirtualHost>#如果证书包含多个域名,复制VirtualHost参数,并将ServerName修改为第二个域名。
<VirtualHost *:443> ServerName #修改为申请证书时绑定的第二个域名。 SSLCertificateFile cert/domain_name2_public.crt # 将domain_name2替换成您申请证书时的第二个域名。SSLCertificateKeyFile cert/domain_name2.key # 将domain_name2替换成您申请证书时的第二个域名。SSLCertificateChainFile cert/domain_name2_chain.crt # 将domain_name2替换成您申请证书时的第二个域名。SSLEngine on SSLHonorCipherOrder on#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。#SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。#SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。
</VirtualHost>
步骤三:. 配置Tomcat 得server.xml 文件
(1) 配置Tomcat server.xml 文件,添加proxyPort和scheme如下图:
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"proxyPort="443"scheme="https"/>
或者
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"/>
步骤四:重启启动Tomcat和Apache
a. 控制Apache 的操作命令
# 启动Apache命令
service httpd start
# 重新 启动Apache命令
service httpd restart
# 停止Apache命令
service httpd stop
# 启动Apache命令
service httpd status
b. 控制Tomcat的操作命令
# 启动Tomcat命令
sh startup.sh# 停止Tomcat命令
sh shutdown.sh
c.控制Nginx的操作命令
# 开启nginx
./nginx
# 重启nginx
./nginx -s reload
# 查询nginx主进程号
ps -ef|grep nginx
# 杀死进程
kill -TERM 进程号
# 停止nginx
nginx -s stop
d.重启mysql操作命令
# 使用service 命令重启
service mysql restart