'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
Delete all files inside the bootstrap\cache folder (except the .gitignore file, that is if you have one)
Delete the vendor folder
Type
composer install
orcomposer update
in command line terminal to install or update the necessary files and configurations back
Solution 3:[3]
- 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
- Change APP_ENV=production to APP_ENV=development
- 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
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
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow