【问题标题】:How to find out if the web server (Apache) a PHP app is running on supports HTTPS?如何确定运行 PHP 应用程序的 Web 服务器 (Apache) 是否支持 HTTPS?
【发布时间】:2012-11-17 03:55:30
【问题描述】:

请注意,我想知道它是否能够接受 HTTPS 请求,而不是它当前是否正在使用它。 另请注意,在我的情况下,扫描端口或发出任何其他 [a] 同步请求不是一个选项,因为它需要非常快。

有没有办法“询问” Apache,例如:从命令行?

编辑:感谢所有想法,但它们是由像你我这样的人“手动”检查上述事实的。那部分我能弄清楚,相信我。我只是认为这些短语“[a] 同步请求”和“它需要非常快”显然暗示了 PHP 应用程序形式的软件。

【问题讨论】:

  • 如果不支持 ssl,这将是一个非常不寻常的 apache 安装。
  • 我的意思是如果它被配置为支持 HTTPS 并且实际上接受 HTTPS 请求。
  • 他们不是。看来您还没有阅读所有答案。检查我的并相应地修改它。
  • IMO 有点奇怪的问题。如果您有服务器,只需查看 mod_ssl 和 openssl 是否像 yum info * 或同等设备一样安装。究竟需要什么快速?

标签: php apache https


【解决方案1】:

您可以通过phpinfo(); 进行检查,也可以查看mod_ssl 是打开还是关闭

【讨论】:

  • mod_ssl enabled 不保证 Web 服务器配置为支持 HTTPS
  • 不。不工作。它显示 SSL=yes 但实际上服务器不接受 HTTPS 连接。不过谢谢你的想法。
【解决方案2】:

我认为您需要在您的页面上运行此代码:<?php echo phpinfo();,您将获得有关版本和设置的所有信息

【讨论】:

  • 具体要看什么?
  • 在输出中查找字符串HTTPS
  • 在屏幕上按ctrl + F 并输入HTTP,它会带你进入屏幕
  • 您到底想知道什么?那个 apache 支持 https: 连接?
  • 搜索apache的核心配置文件:httpd.conf
【解决方案3】:

如果这是您管理的服务器:

  1. 检查是否在 Apache 中启用了 mod_ssl
  2. 检查您是否在 Apache 的 ports.conf 文件中侦听端口 443
  3. 设置 SSL 主机以监听来自 ports.conf 的 IP:port 设置
  4. 检查您是否没有使用防火墙阻止端口 443(这里有很多防火墙选项)

如果你已经配置了 Apache 并且没有关闭防火墙,Apache 应该告诉操作系统监听 443 端口,它会处理请求。

如果这是共享服务器或不是由您自己管理的 - 请咨询您的服务器支持/管理员

【讨论】:

    【解决方案4】:

    这是一种检查 HTTPS 协议支持的方法,将 phpinfo() 信息保存到数组中:

    // NOTE: This section was extracted from the PHP Manual, example from **jon at sitewizard dot ca**
    ob_start();
    phpinfo();
    $PHPInfo = array( 'phpinfo' => array() );
    if ( preg_match_all( '#(?:<h2>(?:<a name=".*?">)?(.*?)(?:</a>)?</h2>)|(?:<tr(?: class=".*?")?><t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>)?)?</tr>)#s',
                         ob_get_clean(), $Matches, PREG_SET_ORDER )
    ) {
      foreach ( $Matches as $Value ) {
        if ( strlen( $Value[ 1 ] ) ) {
          $PHPInfo[ $Value[ 1 ] ] = array();
        }
        elseif ( isset( $Value[ 3 ] ) ) {
          $PHPInfo[ end( array_keys( $PHPInfo ) ) ][ $Value[ 2 ] ] = isset( $Value[ 4 ] ) ? array( $Value[ 3 ],
                                                                                                   $Value[ 4 ] ) : $Value[ 3 ];
        }
        else {
          $PHPInfo[ end( array_keys( $PHPInfo ) ) ][ ] = $Value[ 2 ];
        }
      }
    }
    
    // End of extracted section ----------------------
    
    $HTTPS      = $PHPInfo[ 'curl' ][ 'Protocols' ];
    $HTTPSFound = mb_strstr( $HTTPS, 'https', FALSE );
    
    if ( $HTTPSFound ) {
      echo "HTTPS supported<br /><br />";
    }
    else {
      echo "HTTPS NOT supported<br /><br />";
    }
    

    附加说明:此答案不需要“手动检查”。它通过脚本获取信息!

    【讨论】:

      猜你喜欢
      • 2011-10-06
      • 2016-10-16
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      相关资源
      最近更新 更多