'How to fix Invalid request (Unsupported SSL request)

I'm setting up my laravel application and every time I run php artisan serve, it starts a laravel development serve at localhost:8000. Bu when i open the locahost link on the browser, it forces the http to https and logs invalid request (unsupported SSl request). What do you advise me to do to resolve this?

I have tried forcing the HTTPS mod rewrite rule to http:// on the .htaccess file and it still persists.

This is the command line

C:\Users\topaz\cashurban>php artisan serve
Laravel development server started: <http://127.0.0.1:8000>
[Thu Aug 22 23:06:07 2019] 127.0.0.1:60410 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60418 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60419 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60420 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60421 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60423 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60409 [200]: /assets/img/slider-1.jpg
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60425 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60426 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60427 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60411 [200]: /assets/img/slider-2.jpg
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60435 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60437 [200]: /assets/img/slider-3.jpg
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60439 [200]: /assets/img/icon-1-1.png
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60438 [200]: /assets/img/images/index-Recovereddashboard_03.png
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60440 [200]: /assets/img/icon-2-1.png
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60442 [200]: /assets/img/icon-3-1.png
[Thu Aug 22 23:06:08 2019] 127.0.0.1:60447 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60448 [200]: /assets/img/tor1.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60450 [200]: /assets/img/tor2.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60452 [200]: /assets/img/tor3.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60455 [200]: /assets/img/images/visa.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60453 [200]: /assets/img/images/remita.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60454 [200]: /assets/img/images/master-card.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60460 [200]: /assets/img/images/verve.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60461 [200]: /assets/img/images/indexpartners_11.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60462 [200]: /assets/img/images/bank-branches.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60463 [200]: /assets/img/images/indexpower_03.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60464 [200]: /assets/img/images/paystack.png
[Thu Aug 22 23:06:09 2019] 127.0.0.1:60465 [200]: /assets/img/images/chams.png
[Thu Aug 22 23:06:10 2019] 127.0.0.1:60468 Invalid request (Unsupported SSL request)
[Thu Aug 22 23:06:10 2019] 127.0.0.1:60469 Invalid request (Unsupported SSL request)

this is the .htaccess file

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

    RewriteEngine On

    #Force Https

    #RewriteCond %{HTTPS} !=on
    #RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d

    #Api Redirect
    RewriteCond %{REQUEST_URI} (.+)/$
    #RewriteRule ^/api$ api.%{REQUEST_URI} [L,R=301]


    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

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

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    #GZip Compression
    <ifModule mod_gzip.c>
      #mod_gzip_on Yes
      #mod_gzip_dechunk Yes
      #mod_gzip_item_include file .(html?|txt|css|js|php|xml|json|pl)$
      #mod_gzip_item_include handler ^cgi-script$
      #mod_gzip_item_include mime ^text/.*
      #mod_gzip_item_include mime ^application/x-javascript.*
      #mod_gzip_item_exclude mime ^image/.*
      #mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
    </ifModule>

    #php_value auto_prepend_file /home/example_project/public_html/error_handler_slack.php
    php_value auto_prepend_file error_handler_slack.php
</IfModule>

I expect that it serves on http://localhost and not https://localhost as it is currently redirecting



Solution 1:[1]

I solved this later, just in case anyone has a similar problem in the future, I discovered the AppServiceProvider class had a register method where a security interception middleware was registered to force every http request to https. so what I did was write an if-else logic to allow this only on production since my localhost had no ssl certificate.

in app/providers/AppServiceProvider.php

look for the register() method, the implement the logic by checking tha app is local or not. The isLocal() function checks your .env file for APP_ENV variable and returns true if is local, so you reconfirm again that that is set to local and be sure to clear any previous configuration cache.

//check that app is local
if ($this->app->isLocal()) {
//if local register your services you require for development
    $this->app->register('Barryvdh\Debugbar\ServiceProvider');
} else {
//else register your services you require for production
    $this->app['request']->server->set('HTTPS', true);
}

Solution 2:[2]

This is how I fixed my Invalid request (Unsupported SSL request)

NB: All these changes must be worked on from your project root directory

  1. Delete all files inside the bootstrap\cache folder (except the .gitignore file, that is if you have one)

  2. Delete the vendor folder

  3. Type composer install or composer update in command line terminal to install or update the necessary files and configurations back

Solution 3:[3]

  1. First make sure the APP_URL in the .env file is something like this: APP_URL=http://localhost or http://127.0.0.1:8000
  2. Change APP_ENV=production to APP_ENV=development
  3. Then run php artisan serve again

if above method doesn't work

Edit the /app/Providers/AppServiceProvider.php file: URL::forceScheme('https'); to URL::forceScheme('http');

and run the application again

Solution 4:[4]

Go to .env file, change APP_ENV=production to APP_ENV=development

Then run php artisan serve again

Solution 5:[5]

I resolved this by disabling cache:

Step 1:

config\cache.php

'stores' => [
        'none' => [
            'driver' => 'null',
        ],
    ],

Step 2:

app\Providers\AppServiceProvider.php

Add at the top

use Illuminate\Cache\NullStore;
use Cache;

Add in boot() method

Cache::extend('none', function ($app) {
            return Cache::repository(new NullStore);
        });

Solution 6:[6]

I resolve it by changing the APP_URL=http://localhost to APP_URL=http://127.0.0.1 in the .env file

Solution 7:[7]

In Laravel Framework 7+ you need to edit the /app/Providers/AppServiceProvider.php file: Update

URL::forceScheme('https');

to

URL::forceScheme('`http`');

Then clean cache using

php artisan config:cache

and run application.

Solution 8:[8]

Wanted to share my experience just in case it helps someone. Even I got the same error. This is how I solved it.

I added the following in .env file.

APP_SSL=false

Solution 9:[9]

This is an old question, but my answer may solve someone's problem. On the local development server, if you don't need to send an HTTPS request,

Try changing your URL from

https://127.0.0.1:8000/

to this

http://127.0.0.1:8000/

Make sure your APP_URL in .env is set to http://127.0.0.1:8000.

Solution 10:[10]

Based on the response of @zaghadon.

best solution is just to use one condition :

Change must be done on file : app/Providers/AppServiceProvider.php

public function register()
{
    //check that app is local
    if (!$this->app->isLocal()) {
        //else register your services you require for production
        $this->app['request']->server->set('HTTPS', true);
    }
}

Solution 11:[11]

I have to change the

URL::forceScheme('https');

to

URL::forceScheme('http');

AND

serve --port and my issue is resolved.

php artisan serve --port=8002

Solution 12:[12]

I solved it by changing http://localhost:8000 to localhost:8000

Invalid request (Unsupported SSL request)

Solution 13:[13]

I tried everything recommended above and nothing worked. Here is how I got past the problem:

My browser is trying to access https://localhost:8000. Simply changing to http://localhost:800 on my browser address bar solved the problem. Spent days tinkering on this problem and I believe leaving this answer here would help someone someday

Solution 14:[14]

Because you are try to change URL from http to https on the localhost to fix this problem undo changes that it will change http to https and writing the URL by this way

http://127.0.0.1:8000/