20250227 一口气配置apache2和SSL相关证书
实现泛域名配置和HTTP跳转HTTPS以及SSL证书
apt install apache2
修复启动报错source /etc/apache2/envvars
地址重写(实现访问 a.domain.com ==> /var/www/html/a)sudo a2enmod rewrite
启用SSL
sudo a2enmod ssl
sudo a2ensite default-ssl
HTTP跳转HTTPS
修改配置文件
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
#DocumentRoot /var/www/html
#RewriteEngine On
#RewriteCond %{HTTP_HOST} ^(([-_a-zA-Z0-9])+)\.\w+\.\w+$ [NC]
#RewriteRule ^(.*)$ /%1/$1 [L]
#ErrorLog ${APACHE_LOG_DIR}/error.log
#CustomLog ${APACHE_LOG_DIR}/access.log combined
#ErrorDocument 404 "404 Not Found"
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
</VirtualHost>
/etc/apache2/sites-available/default-ssl.conf
<VirtualHost _default_:443>
#文档路径
DocumentRoot /var/www/html
#域名地址重写匹配
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(([-_a-zA-Z0-9])+)\.\w+\.\w+$ [NC]
RewriteRule ^(.*)$ /%1/$1 [L]
# 错误页面提示
ErrorDocument 404 "404 Not Found!!!"
#日志
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# SSL 证书配置
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/fullchain.crt
SSLCertificateKeyFile /etc/apache2/ssl/private.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
配置证书
nano /etc/apache2/ssl/fullchain.crt
nano /etc/apache2/ssl/private.pem
最后重启apache2
service apache2 restart