AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 9535
In Process
dragonmantank
dragonmantank
Asked: 2009-05-19 08:57:27 +0800 CST2009-05-19 08:57:27 +0800 CST 2009-05-19 08:57:27 +0800 CST

HTTP -> HTTPS 重定向与 OpenBSD 的 httpd [关闭]

  • 772
关闭。这个问题是题外话。它目前不接受答案。

此问题似乎与帮助中心定义的范围内的服务器、网络或相关基础架构管理无关。

7年前关闭。

锁定。这个问题及其答案被锁定,因为这个问题离题但具有历史意义。它目前不接受新的答案或交互。

运行带有内置 httpd 守护程序和 PHP5 的 OpenBSD 4.4-stable,它已从 Ubuntu 8.04 服务器盒中移出。由于运动 phpMyAdmin 似乎经常(有时一直,比如登录)产生以下错误:

Bad Request
Your browser sent a request that this server could not understand.

Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.

phpMyAdmin 的地址位于 https:// URL 下,当发生此错误时,phpMyAdmin 正在尝试使用http://domain.com:443/,这显然不起作用。

我还有一个 mod_rewrite 规则来始终强制使用 HTTPS,但由于浏览器强制使用 443 端口,因此它永远不会被触发。

任何想法如何解决这个问题?

[编辑]

这是我的虚拟主机指令,因为这些指令被要求:

<VirtualHost *:80>
    DocumentRoot    /var/www/htdocs
    RewriteEngine   On
    RewriteCond     %{HTTPS} off
    RewriteRule     (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
    DocumentRoot    /var/www/htdocs
    ErrorLog        logs/error_log
    TransferLog     logs/access_log
    RewriteCond     %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule     .* - [F]
</VirtualHost>

[编辑 2]

我关闭了重写规则,一切都像一个魅力:/不知道该怎么做,因为相同的重写规则在其他地方也有效。

openbsd httpd
  • 2 2 个回答
  • 5301 Views

2 个回答

  • Voted
  1. WerkkreW
    2009-05-19T09:05:48+08:002009-05-19T09:05:48+08:00

    在我的 PHPMyAdmin 设置中,我有一个 apache 配置,如下所示:

    <VirtualHost 72.233.89.20:80>
        ServerName mysql
        ServerAlias mysql.*
        UseCanonicalName Off
        DocumentRoot /var/www/phpmyadmin/html/
        DirectoryIndex index.html index.htm index.php
        AddType application/x-httpd-php .php
    
        php_admin_value open_basedir /var/www/phpmyadmin/
        php_admin_value file_uploads 1
        php_admin_value upload_tmp_dir /var/www/phpmyadmin/phptmp/
        php_admin_value session.save_path /var/www/phpmyadmin/phptmp/
    </VirtualHost>
    #
    ######
    # Interface for https (openssl)
    ######
    #
    <IfModule mod_ssl.c>
    <VirtualHost 72.233.89.20:443>
            ServerName mysql
            ServerAlias mysql.*
            UseCanonicalName Off
            DocumentRoot /var/www/phpmyadmin/ssl
            SSLEngine on
            SSLCertificateFile    /etc/httpd/conf/ssl/server.crt
            SSLCertificateKeyFile /etc/httpd/conf/ssl/server.key
            DirectoryIndex index.html index.htm index.php
            AddType application/x-httpd-php .php
    
            php_admin_value open_basedir /var/www/phpmyadmin/
            php_admin_value file_uploads 1
            php_admin_value upload_tmp_dir /var/www/phpmyadmin/phptmp/
            php_admin_value session.save_path /var/www/phpmyadmin/phptmp/
    </VirtualHost>
    </IfModule>
    

    请注意它是如何在端口 80 和端口 443 上设置的。

    在 http(端口 80)的 webroot 中,我只有一个 .htaccess 文件,如下所示:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    

    将其全部重定向到 SSL。

    所有 PHPMyAdmin 文件都位于 SSL 目录中。

    我建议将您的虚拟主机设置为在端口 80 和端口 443 上提供服务。PHPMyAdmin 本身只是一个 php 脚本,它不会强制使用任何端口。这完全取决于您的网络服务器/虚拟主机的配置方式。

    • 2
  2. samt
    2009-07-28T15:34:57+08:002009-07-28T15:34:57+08:00

    由于浏览器通常不会从端口 80 重定向到端口 443,因此可能是从 phpmyadmin 返回的第一个页面导致了更改。看看你的 phpmyadmin 配置,看看有什么不同:

    • 配置文件

      $cfg['ForceSSL'] 布尔值

    访问 phpMyAdmin 时是否强制使用 https。

    根据文档,默认情况下它是打开的,但由于你有 mod_rewrite 工作,可能会有“断开连接?”

    似乎现在每个人都在为 Microsoft IE 提供一个条款,例如:

    • SSL 和 MSIE 客户端

    SetEnvIf User-Agent " .MSIE . " nokeepalive ssl-unclean-shutdown

    否则, ...

    是否有任何机会使用 OpenBSD Apache 2.0.x 软件包对您有所帮助?

    看来您的 Ubuntu 配置将使用 Apache 2.0,并且您已将系统(和配置)移动到使用 Apache 1.3.x 的默认 OpenBSD 配置

    我认为您至少需要查看 WerkkreW 显示的 php_admin_value。

    当简单的事情不起作用时,我们总是可以增加LogLevel数据并从那里查看结果。它很吵,但总是一种选择。

    在Apache 配置中启用 SSLOptions StdEnvVars

    StdEnvVars 启用此选项时,将创建标准的 SSL 相关 CGI/SSI 环境变量集。出于性能原因,默认情况下禁用此功能,因为信息提取步骤是一项相当昂贵的操作。因此,通常只为 CGI 和 SSI 请求启用此选项。

    • 0

相关问题

  • OpenBSD 4.4 上的 ichiic0 错误

  • OpenBSD 安装在 2 个切片上

  • PHP 网络服务器的最快选择

  • 什么会导致 Apache HTTPD 无限期地使用 100% CPU

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve