Доступ к серверу разработки по 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. Это работает для меня

Вернуться на верх