Apache HTTPS在PHP中被识别为HTTP
我在apache生产服务器中启用了Symfony API REST,它使用HTTPS并通过Querys SSL测试认证了a+安全性 通过邮寄路线Apache HTTPS在PHP中被识别为HTTP,php,apache,http,ssl,https,Php,Apache,Http,Ssl,Https,我在apache生产服务器中启用了Symfony API REST,它使用HTTPS并通过Querys SSL测试认证了a+安全性 通过邮寄路线https://hooks-api.com/hooks,API返回一个url属性,该属性由Symfonyrequest的$request->generateUrl方法生成。 问题是,由于Symfony无法识别服务器正在使用HTTPS(使用$request->getScheme&$request->getPort进行测试),因此API始终生成http://
https://hooks-api.com/hooks
,API返回一个url
属性,该属性由Symfonyrequest
的$request->generateUrl
方法生成。
问题是,由于Symfony无法识别服务器正在使用HTTPS(使用$request->getScheme
&$request->getPort
进行测试),因此API始终生成http://
URL
经过一些研究,似乎phpinfo
打印了一个带有REQUIRE\u SCHEME HTTP
的Appache HTTP配置,并且缺少了所有用于SSL的东西,比如HTTPS on
&SSL\u TLS\u SNI
我已经在自己的本地创建了一个新的生产环境,使用相同的虚拟主机配置:它可以工作
但我仍然不明白为什么生产服务器不能工作。。。这是我的配置:
<VirtualHost *:80>
ServerName api.hooks
Redirect 308 / https://prod.api.hooks/
</VirtualHost>
<VirtualHost *:443>
ServerName prod.api.hooks
SSLEngine on
SSLCertificateKeyFile "${SRVROOT}/conf/key/private.key"
SSLCertificateFile "${SRVROOT}/conf/key/certificate.crt"
Header set Access-Control-Allow-Origin "*"
Header always set Content-Security-Policy "default-src 'none'!"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains;"
Header always set X-Content-Type-Options "nosniff"
DocumentRoot C:/wamp64/www/production/hooks/public
<Directory "C:/wamp64/www/production/hooks/public">
AllowOverride None
Require all granted
FallbackResource /index.php
</Directory>
<Directory "C:/wamp64/www/production/hooks/public/bundles">
FallbackResource disabled
</Directory>
</VirtualHost>
ServerName api.hooks
重定向308/https://prod.api.hooks/
ServerName prod.api.hooks
斯伦金安
SSLCertificateKeyFile“${SRVROOT}/conf/key/private.key”
SSLCertificateFile“${SRVROOT}/conf/key/certificate.crt”
标题集访问控制允许原点“*”
标题始终设置内容安全策略“默认src‘无’!”
标头始终设置引用方策略“交叉源时严格源”
标头始终设置严格的传输安全性“最大年龄=31536000;包括子域
标题始终设置X-Content-Type-Options“nosniff”
DocumentRoot C:/wamp64/www/production/hooks/public
不允许超限
要求所有授权
FallbackResource/index.php
后备资源已禁用
“我已经在自己的本地创建了一个新的生产环境,使用相同的虚拟主机配置:它可以工作!”-因为您显示的部分配置在一个环境中工作,但在另一个环境中不工作,所以问题很可能不在您显示的部分(VirtualHost)中,而是在您未显示的部分(配置的其余部分、apache版本、系统设置…)。换句话说:您提供的信息实际上无助于找到问题的原因。问题已解决!问题是SSL配置被设置为全局默认sll.conf
,而不是每个VHost中的设置。