我有一个新的专用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
的服务器上安装了该包。
就是这样,您可以生成自签名证书来测试它。