1.操作环境
操作系统:debian 12
2.预处理
socat申请ssl证书会用到
apt update -y && apt upgrade -y && apt install -y curl wget sudo socat
3.安装Apache2
apt install apache2
4.启用必要的模块
确保服务器已经安装并启用了"mod_proxy"和"mod_proxy_http"模块。
运行下面命令来启用他们:
sudo a2enmod proxy
sudo a2enmod proxy_http
或者编辑Apache的主配置文件(通常位于/etc/apache2/apache2.conf),增加下面内容:
LoadModule proxy_module /path/to/mod_proxy.so #修改路径
LoadModule proxy_http_module /path/to/mod_proxy_http.so #修改路径
Apache模块一般位于/usr/lib/apache2/modules内,故上述内容改为
LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
5.配置Apache配置文件
如/etc/apache2/sites-enabled/000-default.conf
打开上面文件,或者可以在同一目录下新增一个文件。
添加以下内容:
<VirtualHost *:80>
ServerName 域名
ProxyPreserveHost On
ProxyPass / http://ip:端口/
ProxyPassReverse / http://ip:端口/
</VirtualHost>
更改配置后,需要重启Apache服务使其生效:
sudo systemctl restart apache2
6.启用SSL的设置
6.1申请ssl证书
curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --register-account -m xxxx@gmail.com
~/.acme.sh/acme.sh --issue -d 网站域名 --standalone
6.2下载证书
~/.acme.sh/acme.sh --installcert -d memos.dongbaicun.top --key-file /etc/apache2/certs/key.pem --fullchain-file /etc/apache2/certs/cert.pem
注意/etc/apache2/certs是存放证书的路径,可以更改,不过要跟下面Apache配置文件相一致。
6.3启用SSL模块
sudo a2enmod ssl
6.4配置Apache配置文件
打开文件/etc/apache2/sites-enabled/000-default.conf
增加一下内容:
<VirtualHost *:443>
ServerName 域名
SSLEngine on
SSLCertificateFile /etc/apache2/certs/cert.pem #刚刚申请证书的路径
SSLCertificateKeyFile /etc/apache2/certs/key.pem #刚刚申请证书的路径
ProxyPreserveHost On
ProxyPass / http://ip:端口/
ProxyPassReverse / http://ip:端口/
</VirtualHost>
更改配置后,需要重启Apache服务使其生效:
sudo systemctl restart apache2
6.5强制https访问
上面的修改如果是用http://域名还是能够访问的,下面设置http强制转换成https访问,修改配置文件/etc/apache2/sites-enabled/000-default.conf,只需修改80端口部分即可:
<VirtualHost *:80>
ServerName 域名
Redirect permanent / https://域名/
</VirtualHost>
<VirtualHost *:443>
ServerName 域名
SSLEngine on
SSLCertificateFile /etc/apache2/certs/cert.pem
SSLCertificateKeyFile /etc/apache2/certs/key.pem
ProxyPreserveHost On
ProxyPass / http://ip:端口/
ProxyPassReverse / http://ip:端口/
</VirtualHost>
重启Apache服务:
sudo systemctl restart apache2
评论区