https设置后,django站点ERR_SSL_PROTOCOL_ERROR

时间:2016-09-14 21:48:43

标签: django https server django-deployment

所以我正在尝试部署我的网站并且基本上尝试了

python manage.py check --deploy

然后跟着它告诉我:

WARNINGS:
?: (security.W004) You have not set a value for the SECURE_HSTS_SECONDS setting. If your entire site is served only over SSL, you may want to consider setting a value and enabling HTTP Strict Transport Security. Be sure to read the documentation first; enabling HSTS carelessly can cause serious, irreversible problems.
?: (security.W006) Your SECURE_CONTENT_TYPE_NOSNIFF setting is not set to True, so your pages will not be served with an 'x-content-type-options: nosniff' header. You should consider enabling this header to prevent the browser from identifying content types incorrectly.
?: (security.W007) Your SECURE_BROWSER_XSS_FILTER setting is not set to True, so your pages will not be served with an 'x-xss-protection: 1; mode=block' header. You should consider enabling this header to activate the browser's XSS filtering and help prevent XSS attacks.
?: (security.W008) Your SECURE_SSL_REDIRECT setting is not set to True. Unless your site should be available over both SSL and non-SSL connections, you may want to either set this setting True or configure a load balancer or reverse-proxy server to redirect all connections to HTTPS.
?: (security.W012) SESSION_COOKIE_SECURE is not set to True. Using a secure-only session cookie makes it more difficult for network traffic sniffers to hijack user sessions.
?: (security.W016) You have 'django.middleware.csrf.CsrfViewMiddleware' in your MIDDLEWARE, but you have not set CSRF_COOKIE_SECURE to True. Using a secure-only CSRF cookie makes it more difficult for network traffic sniffers to steal the CSRF token.
?: (security.W017) You have 'django.middleware.csrf.CsrfViewMiddleware' in your MIDDLEWARE, but you have not set CSRF_COOKIE_HTTPONLY to True. Using an HttpOnly CSRF cookie makes it more difficult for cross-site scripting attacks to steal the CSRF token.
?: (security.W018) You should not have DEBUG set to True in deployment.
?: (security.W019) You have 'django.middleware.clickjacking.XFrameOptionsMiddleware' in your MIDDLEWARE, but X_FRAME_OPTIONS is not set to 'DENY'. The default is 'SAMEORIGIN', but unless there is a good reason for your site to serve other parts of itself in a frame, you should change it to 'DENY'.
?: (security.W020) ALLOWED_HOSTS must not be empty in deployment.

基本上在settings.py中将所有这些设置为True,并将Debug模式设置为False,并将SECURE_HSTS_SECONDS = 300

但是,在执行此操作之前,我忘记在服务器上设置我的网站,现在当我尝试访问它时,它在浏览器中给出了这个错误:

Secure Connection Failed

An error occurred during a connection to 127.0.0.1:8001. SSL received a record that exceeded the maximum permissible length. Error code: SSL_ERROR_RX_RECORD_TOO_LONG

    The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
    Please contact the website owners to inform them of this problem.

和cmd中的那些:

[14/Sep/2016 17:40:46] code 400, message Bad request syntax ('\x16\x03\x01\x00|\x01\x00\x00x\x03\x02\xd3\xb8S<\t¿°\xfd½U»ïä\x98\x99h\xb9¥±T~\x129\x05á\xc0V\t\x9a\xe3\x82E\x00\x00\x10\xc0\t\xc0\x13\xc0')
[14/Sep/2016 17:40:46] You're accessing the development server over HTTPS, but it only supports HTTP.

好的,所以它清楚地告诉我问题:我不支持HTTP,但设置设置为支持它。但奇怪的是,即使我删除了所有这些设置,网站也保持这种状态,我甚至无法在DEBUG = True的开发中访问它。

在我这样做之前,我甚至尝试使用git恢复到版本,但它没有帮助。同样的错误仍然存​​在。现在我真的很担心,也许我只是毁了它?请有人帮助我

1 个答案:

答案 0 :(得分:3)

您是否尝试使用其他浏览器访问(dev)网站?也许是因为您在设置SECURE_HSTS_SECONDS上给出的价值。如果这个太高(例如31536000 == 1年),浏览器将继续点击您网站的https版本。

但是,您可以清除浏览器的HSTS设置。也许this可以提供帮助。

为了更好地理解HSTS(如果这是问题),请阅读this文章。

如果这有助于你,请告诉我。