Apache http 强制 https

1. 修改一下文件配置

bash 复制代码
sudo nano /etc/apache2/sites-enabled/000-default.conf
bash 复制代码
<VirtualHost *:80>
    ServerName hongweizhu.com
    ServerAlias www.hongweizhu.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    
    # 强制重定向到HTTPS
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
bash 复制代码
sudo nano /etc/apache2/sites-enabled/001-ssl.conf
bash 复制代码
<IfModule mod_ssl.c>
        <VirtualHost *:443>
                ServerName hongweizhu.com
                ServerAlias www.hongweizhu.com
                ServerAdmin webmaster@localhost
                DocumentRoot /var/www/html
                
                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined
                
                SSLEngine on
                SSLCertificateFile /etc/apache2/ssl/hongweizhu.com_public.crt
                SSLCertificateKeyFile /etc/apache2/ssl/hongweizhu.com.key
                SSLCertificateChainFile /etc/apache2/ssl/hongweizhu.com_chain.crt
                
                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>
        </VirtualHost>
</IfModule>

2. 启用必要的模块并重启

bash 复制代码
sudo a2enmod rewrite
sudo a2enmod ssl
sudo systemctl restart apache2

3. 测试一下。自己再用浏览器测试一下

bash 复制代码
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % # 检查HTTP请求是否重定向到HTTPS
curl -I http://hongweizhu.com
zsh: command not found: #
HTTP/1.1 301 Moved Permanently
Date: Thu, 10 Jul 2025 11:22:36 GMT
Server: Apache/2.4.41 (Ubuntu)
Location: https://hongweizhu.com/
Content-Type: text/html; charset=iso-8859-1

zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % curl -I https://hongweizhu.com
HTTP/1.1 200 OK
Date: Thu, 10 Jul 2025 11:22:58 GMT
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: Wed, 02 Jul 2025 15:55:07 GMT
ETag: "68b-638f448f8ee4b"
Accept-Ranges: bytes
Content-Length: 1675
Vary: Accept-Encoding
Content-Type: text/html

zqm@zqms-MacBook-Pro Desktop % 
zqm@zqms-MacBook-Pro Desktop % 

希望对你有些帮助。
有错误或者疑问留言。
我的个人网站 点击访问 hongweizhu.com

END

推荐一下我写的的 App 熊猫小账本,里面有用到这篇博客讲的内容

熊猫小账本 一个简洁的记账 App,用于记录日常消费开支收入,使用 iCloud 保存同步数据。

  • 支持备注,自定义时间偶尔忘记记账也没关系。
  • 搜索历史记账,支持分类、金额、备注。
  • 启动时需要面容/指纹验证,保护个人隐私。
  • 支持自定义分类功能,自由添加修改分类。
  • 统计图表,支出收入一目了然。
  • 每天提醒记账,不会有其他推送。
  • 桌面锁屏小组件等。

点击了解更多详情 👀

相关推荐
牛奶15 小时前
HTTPS你不知道的事
前端·https·浏览器
喵个咪2 天前
Go-Wind HTTP 服务器从入门到精通
后端·http·go
AlfredZhao4 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
Goodbye8 天前
大模型无状态架构:从 HTTP 协议到 Harness AI 工程的深度解析
http
Avan_菜菜8 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
霜落长河14 天前
抛弃TCP改用UDP,HTTP3怎么了?
http
程序员mine15 天前
HTTPS-TLS加密与证书完全指南(中)
网络协议·https·ssl
之歆15 天前
现代 HTTP 客户端深度解析:Fetch 与 Axios
chrome·网络协议·http
程序员mine15 天前
HTTPS-TLS加密与证书完全指南(上)
网络协议·https
小小龙学IT15 天前
Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
开发语言·python·apache