gpt4 book ai didi

php - Laravel 和通过特定 Laravel 路由的双向 SSL

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:40 24 4
gpt4 key购买 nike

尝试在两台生产服务器之间建立双向 SSL 连接。客户端机器将使用证书连接到 Laravel 路由并传递 xml 负载。生产机器上的 apache 服务器和客户端机器之间应该有双向 ssl 握手。

我在生产机器上使用此 apache 目录设置:

<Directory /var/www/vhosts/subdomain/html/routename>
SSLVerifyClient require
SSLVerifyDepth 5
SSLOptions +FakeBasicAuth
SSLRequireSSL
SSLRequire %{SSL_CLIENT_S_DN_O} eq "company name"
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLOptions +StdEnvVars +ExportCertData +OptRenegotiate
</Directory>

我在 .htaccess 中设置了以下内容

<IfModule mod_rewrite.c>
<IfModule mod_rewrite.c>
SSLOptions +StdEnvVars
SSLOptions +ExportCertData

<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

Laravel 路由仍然接受来自根本不使用证书或证书满足 SSL_CLIENT_S_DN_O 要求的机器的连接。似乎 mod_rewrite 优先于目录 ssl 要求。预先感谢您提供任何基本建议。非常感谢任何想法。

最佳答案

我放弃了这个选项。

Laravel 的工作原理是通过隐藏的 .htaccess 文件中的“重写”来劫持 url。如果 url 位置实际存在,则 apache 将处理文件系统上的脚本。如果 url 位置在文件系统上不存在,那么重写将通过 Laravel 的 Controller (routes.php)路由请求,处理并返回。

apache 位置和目录指令与特定文件系统位置中的特定脚本一起使用。我需要这些指令来保护某些脚本不被执行,除非访问者出示特定的 SSL 客户端证书。该架构基本上与 Laravel 的结构方式不兼容。

作为解决方法,我在实际文件系统位置创建了特定脚本(php 文件),使用 apache 位置指令保护它们,并将传入请求转发到预期请求来自本地主机的 Laravel 路由。

关于php - Laravel 和通过特定 Laravel 路由的双向 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28489659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com