【问题标题】:how to configure my site to access from http to https using laravel 6如何使用 laravel 6 将我的网站配置为从 http 访问到 https
【发布时间】:2020-10-17 10:36:37
【问题描述】:

我正在尝试将我的网站配置为从 http 重定向到 https。

AppServiceProvider.php

public function boot()
    {
        if($this->app->environment('production')) {
          \URL::forceScheme('https');
     }

.env

APP_URL=https://127.0.0.1:8000

我在根目录下创建了一个 HttpsProtocol 文件

App/Http/Middleware/HttpsProtocol.php

<?php
namespace App\Http\Middleware;

use Closure;

class HttpsProtocol {

    public function handle($request, Closure $next)
    {
            if (!$request->secure()) {
               return redirect()->secure($request->getRequestUri());
            }

            return $next($request); 
    }
}
?>

kernel.php

protected $middlewareGroups = [
        'web' => [
            ...
            ...
            \App\Http\Middleware\HttpsProtocol::class,
        ],

config/app.php

'url' => env('APP_URL', 'https://localhost'),

当我通过https://127.0.0.1:8000/ 进入时,它给了我这个网站无法访问

【问题讨论】:

  • 如果您认为必须在本地拥有 https 才能测试某些内容,那么您可能做错了。
  • 您需要在本地安装 SSL
  • Https 通常在端口 443 上,这是大多数浏览器所期望的。无论如何,要设置 https,您需要在您的服务器(apache 或 nginx)中配置它,而不仅仅是在您的代码中。

标签: php laravel https middleware


【解决方案1】:

第1步:转到主机文件并将这一行添加到这一行

127.0.0.1 site.test

第2步:将site.test添加到httpd-vhosts.conf

## site.test
 <VirtualHost *:80>
     DocumentRoot "C:/xampp/htdocs"
     ServerName site.test
     ServerAlias *.site.test
 </VirtualHost>
 <VirtualHost *:443>
     DocumentRoot "C:/xampp/htdocs"
     ServerName site.test
     ServerAlias *.site.test
     SSLEngine on
     SSLCertificateFile "crt/site.test/server.crt"
     SSLCertificateKeyFile "crt/site.test/server.key"
 </VirtualHost>

第3步:进入xampp\apache并创建新目录crt(我们的证书将存储在此文件夹中)

我们需要 crt 文件夹中的两个文件,一个名为 cert.conf 的文件,您可以在下面下载,另一个文件名为 make-cert.bat,您必须在其中创建并编写以下代码

1 cert.conf:https://gist.github.com/mdobydullah/8037540214d80d5931fb18c31ebf3e97

2 make-cert.bat

@echo off
set /p domain="Enter Domain: "
set OPENSSL_CONF=../conf/openssl.cnf

if not exist .\%domain% mkdir .\%domain%

..\bin\openssl req -config cert.conf -new -sha256 -newkey rsa:2048 -nodes -keyout %domain%\server.key -x509 -days 365 -out %domain%\server.crt

echo.
echo -----
echo The certificate was provided.
echo.
pause

打开 cert.conf 文件并搜索“site.test”,然后将其替换为您的域。 双击make-cert.bat文件打开你的终端,然后输入需要的项目回车。

第 4 步: 完成上述步骤后,会在crt文件夹内创建一个名为site.test的文件夹,其中有server.crt和server.key两个文件,在Windows上安装在server.crt文件上双击,然后安装证书

第五步:最后我们需要重启我们的Apache,然后刷新浏览器看到绿锁。

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 2019-02-13
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    相关资源
    最近更新 更多