1.openssl 下载

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

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

2.安装后添加环境变量

C:\OpenSSL-Win64\bin

3.生成私钥

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

$ openssl genrsa -des3 -out server.key 

注意:生成私钥,需要提供一个至少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 ( 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  -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,可正确访问。

最新文章

  1. PHP生成验证码及单实例应用
  2. 《Unix/Linux网络日志分析与流量监控》获2015年度最受读者喜爱的IT图书奖
  3. OkHttp使用进阶 译自OkHttp Github官方教程
  4. JavaScript 2016年的概况
  5. udp穿透简单讲解和实现(Java)
  6. javascript的alert()的消息框不弹出或者弹出信息有误
  7. bzoj2351 2462
  8. 分享一下个人的Vim配置文件
  9. XMPP协议实现原理介绍
  10. git入门超详细(转载)
  11. 实验吧Web-天网管理系统
  12. [BZOJ5064]B-number
  13. Tomcat的三种部署方式
  14. 精选!15个必备的VSCode插件
  15. python 文本特征提取 CountVectorizer, TfidfVectorizer
  16. PAT乙级 1031. 查验身份证(15)
  17. MySQL复制 slave_exec_mode 参数IDEMPOTENT 说明
  18. java交互方式中的同步与异步
  19. hdu1242 Rescue(BFS +优先队列 or BFS )
  20. 【剑道】日常练习相关Q&A 整理

热门文章

  1. consul & registrator & consul-template 使用
  2. 2016第七届蓝桥杯C/C++语言A组
  3. Spring MVC的原理及配置详解
  4. nexus 数据库备份任务webhook 通知-另外一种方法
  5. redis五种数据类型和常用命令及适用场景
  6. C#中使用EntityFramework(EF)生成实体进行存储过程的调用
  7. c# 执行javascript 脚本
  8. Python2.X和Python3.X的w7同时安装使用
  9. Android OkHttp Get请求方式
  10. 如何在本地同时管理github仓库和codingnet仓库?