Доступ к серверу разработки по HTTPS, но он поддерживает только HTTP Ошибка в django rest framework
Я реализовал его, и, похоже, он дал мне ошибку (в настоящее время у меня нет этой точной ошибки в моих журналах. Возможно, она даже совпадает с ошибкой, с которой я сейчас столкнулся). Я попытался отменить ее. Не получилось.
Я зашел на сайт ChatGPT. Там я нашел несколько способов устранения неполадок и несколько решений. Ничего не помогло.
Вот моя settings.py
from pathlib import Path
import os
BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = 'later'
DEBUG = False
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'api', # api is my app name
'rest_framework',
'rest_framework.authtoken',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.contenttypes',
]
MIDDLEWARE = [
# 'whitenoise.middleware.WhiteNoiseMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'pythonRestApi.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'pythonRestApi.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
AUTH_PASSWORD_VALIDATORS = [
{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator'},
{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator'},
{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator'},
{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator'},
]
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
# This is the code which was reversed. It was all set to True
SECURE_BROWSER_XSS_FILTER = False
SECURE_CONTENT_TYPE_NOSNIFF = False
SECURE_SSL_REDIRECT = False
SECURE_HSTS_SECONDS = 0 # This one was set to 86400
SECURE_HSTS_PRELOAD = False
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SESSION_COOKIE_SECURE = False
CSRF_COOKIE_SECURE = False
Вот моя ошибка в терминале, когда я пытаюсь войти на сайт Rest API:
code 400, message Bad request version ('ZZ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x01\x00\x01\x93ÊÊ\x00\x00\x00') // This seems to be changing for some reason every-time
You're accessing the development server over HTTPS, but it only supports HTTP.
code 400, message Bad HTTP/0.9 request type ('\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x18Ø&\x81é5Â')
You're accessing the development server over HTTPS, but it only supports HTTP.
Вот моя ошибка, когда я пытаюсь получить его с помощью fetch.py
(он просто получает данные):
An error occurred: HTTPConnectionPool(host='192.168.29.72', port=80): Max retries exceeded with url: /auth/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000002D5090B52B0>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it'))
Я пытался сделать свой сайт безопасным. Пока не наткнулся на это видео о том, как сделать Rest API безопасным. Человек указал на этот артикул, который казался просто замечательным.
Похоже, что я сам нашел решение. Для всех, кто ищет решение, просто сделайте port=80
(если у вас его еще нет) и отключите только SECURE_SSL_REDIRECT
. Это работает для меня