请注意,我想知道它是否能够接受 HTTPS 请求,而不是它当前是否正在使用它。另请注意,在我的情况下,扫描端口或发出任何其他 [a] 同步请求不是一个选项,因为它需要非常快。
有没有办法“询问”Apache,例如:从命令行?
编辑:感谢所有想法,但它们是由像你我这样的人“手动”检查上述事实。那部分我能弄清楚,相信我。我只是认为这些短语“[a] 同步请求”和“它需要非常快”显然暗示了 PHP 应用程序形式的软件。
你可以检查这个,phpinfo();
你也可以厚着脸皮知道mod_ssl是打开还是关闭
我认为您需要在您的页面上运行此代码:<?php echo phpinfo();
您将获得有关版本和设置的所有信息
如果这是您管理的服务器:
如果你已经配置了 Apache 并且没有关闭防火墙,Apache 应该告诉操作系统监听 443 端口,它会处理请求。
如果这是共享服务器或不是由您自己管理的服务器 - 请咨询您的服务器支持/管理员
这是一种检查 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 />";
}
附加说明:此答案不需要“手动检查”。它通过脚本获取信息!