zoukankan      html  css  js  c++  java
  • window django-https 证书

    1.openssl 下载

    http://slproweb.com/products/Win32OpenSSL.html

    根据你的系统来选择不同的版本下载安装,选带light的比较小。

    2.安装后添加环境变量

    C:OpenSSL-Win64in

    3.生成私钥

    使用openssl工具生成一个RSA私钥

    $ openssl genrsa -des3 -out server.key 2048

    注意:生成私钥,需要提供一个至少4位的密码。说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。

    4.生成CSR(证书签名请求)

    生成私钥之后,便可以创建csr文件了。

    此时可以有两种选择。理想情况下,可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书(很贵)。另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名,具体操作如下:

    $ openssl req -new -key server.key -out server.csr

     说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。

    Country Name (2 letter code) [AU]:CN
    
    State or Province Name (full name) [Some-State]:Beijing
    
    Locality Name (eg, city) []:Beijing
    
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:joyios
    
    Organizational Unit Name (eg, section) []:info technology
    
    Common Name (e.g. server FQDN or YOUR name) []:demo.joyios.com
    
    Email Address []:liufan@joyios.com

    5.删除私钥中的密码 

    在第1步创建私钥的过程中,由于必须要指定一个密码。而这个密码会带来一个副作用,那就是在每次Apache启动Web服务器时,都会要求输入密码,这显然非常不方便。要删除私钥中的密码,操作如下:

    cp server.key server.key.org 可以手动复制
    
    openssl rsa -in server.key.org -out server.key

    6.生成自签名证书 

    如果你不想花钱让CA签名,或者只是测试SSL的具体实现。那么,现在便可以着手生成一个自签名的证书了。

    需要注意的是,在使用自签名的临时证书时,浏览器会提示证书的颁发机构是未知的。

    $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

    说明:crt上有证书持有人的信息,持有人的公钥,以及签署者的签名等信息。当用户安装了证书之后,便意味着信任了这份证书,同时拥有了其中的公钥。证书上会说明用途,例如服务器认证,客户端认证,或者签署其他证书。当系统收到一份新的证书的时候,证书会说明,是由谁签署的。如果这个签署者确实可以签署其他证书,并且收到证书上的签名和签署者的公钥可以对上的时候,系统就自动信任新的证书。

    7.下载django-sslserver

    pip install django-sslserver

    8.配置

    添加:
    SECURE_SSL_REDIRECT = False
    INSTALLED_APPS = (
    "sslserver",
    )

    9.启动

    python manage.py runsslserver
    把certificate地址,key地址,copy下来,进行接下来的请求

    指定证书启动django应用
    $ python manage.py runsslserver --certificate /path/to/certificate.crt --key /path/to/key.key
    $ python manage.py runsslserver --certificate /path/to/certificate.crt --key /path/to/key.key 0.0.0.0:8000
    当SECURE_SSL_REDIRECT = False时,http请求无响应,https请求能正确访问。 当SECURE_SSL_REDIRECT = True时,http请求会重 定向https,此时django支持https,可正确访问。

    作者:陈耿聪 —— 夕狱

    出处:https://www.cnblogs.com/CGCong/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    【SQLite操作】SQLite下载使用教程
    【VS】编译/生成解决方案时错误 未能写入输出文件“...objDebugxxx.exe”--“另一个程序正在使用此文件,进程无法访问
    Webstorm 快速补全
    JS 之循环 应用案例1
    elementUI的el-input和el-select宽度 一致
    SpringMVC 参数中接收之一 List
    VUE 之_this.da 和 this
    CSS 格式 设置标签间距 和 input slot
    Spring最简单构建一个后台{msg:"登录成功",code:200,data:null}
    VUE SpringCloud 跨域资源共享 CORS 详解
  • 原文地址:https://www.cnblogs.com/CGCong/p/10607992.html
Copyright © 2011-2022 走看看