Apache - php 在 http 上执行没问题,但在 https 上执行则不行

Apache - php 在 http 上执行没问题,但在 https 上执行则不行

我有一个新的专用Linux网络服务器。

我的托管服务提供商给我提供了一个带有 php 的 apache 服务器设置。

当我在浏览器中打开通过 ip 调用的 url 时,例如:http://xxx.yyy.zzz.vvv/test.php,我执行了 php 脚本,并且它运行良好。所以,在这种情况下,一切都运行良好。

如果我在浏览器中调用 https,就会出现问题,例如https://xxx.yyy.zzz.vvv/test.php

在这种情况下,我得到浏览器选项另存为,我所能做的就是将 php 文件保存在我的电脑上。

因此,在我看来,apache 存在一些配置错误。

提供商支持告诉我,当我在 Apache 服务器中构建证书时,这将正常工作。但是,我对此并不确定。

你能告诉我提供商的支持是否正确吗?

另外,服务器上安装了 plesk。plesk 过去出现过很多问题。可能是 plesk 造成了那个问题吗?

如果您能帮助我解决这个问题。提前谢谢您!

答案1

您的主机撒谎了,如果没有证书,您将收到一条错误的证书消息,而不是源代码下载。我猜是您的 https 设置太严格,导致脚本无法执行。我正在发送一份正确配置的 https .conf 文件的副本:

NameVirtualHost domain.tld:80 
<VirtualHost your_server_ip:80>   
ServerAdmin [email protected]   
DocumentRoot /path/to/site/root/  
ServerName domain.tld  
ScriptAlias /cgi-bin/ "/path/to/site/root/"  
</VirtualHost>  

NameVirtualHost domain.tld:443  
<VirtualHost your_server_ip:443>  
SSLEngine on  
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL  
SSLCertificateFile "/path/to/your/file.crt"  
SSLCertificateKeyFile "/path/to/your/file.key"  

<FilesMatch "\.(cgi|shtml|phtml|php)$">  
    SSLOptions +StdEnvVars  
</FilesMatch>  
BrowserMatch ".*MSIE.*" \  
         nokeepalive ssl-unclean-shutdown \  
         downgrade-1.0 force-response-1.0  

CustomLog "logs/domain.tld-ssl-request_log" \  
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"  

DocumentRoot /path/to/domain/root  
ServerName domain.tld  
ServerAdmin [email protected]  
ScriptAlias /cgi-bin/ "/path/to/domain/cgi-bin/"  
</VirtualHost>  

在您的 httpd.conf 中您可能需要包含/检查以下内容:

<IfModule ssl_module>  
SSLRandomSeed startup builtin  
SSLRandomSeed connect builtin  
Include /etc/httpd/conf/ssl/*.conf  
</IfModule>

就我而言,我已经为具有 SSL 证书的域名分离了文件,因此我将它们包含在上面的声明中。

最后确保您OpenSSL的服务器上安装了该包。

就是这样,您可以生成自签名证书来测试它。

相关内容