tornado SSL 证书获取与服务器配置
转载注明出处: http://www.cnblogs.com/ityoung/p/8296088.html
自动化测试/持续集成/测试开发 QQ交流群: 70160503
服务端生成证书
进入 openssl 目录
$ cd /usr/lib/ssl
生成私钥
$ sudo openssl genrsa -des3 -out server.key 1024
生成 CSR 文件
$ sudo openssl req -new -key server.key -out server.csr -config openssl.cnf
其中必填项有:
* Country Name (2 letter code) [AU]:
* Common Name (e.g. server FQDN or YOUR name) []:
生成 CA (用于自签名)
- 新建demoCA, demoCA/certs, demoCA/newcerts
$ sudo mkdir demoCA demoCA/certs demoCA/newcerts
在 demoCAm 目录下新建空文件 index.txt
在 demoCAm 目录下新建文件 serial, 内容是一个合法的 16 进制数字, 例如 0000
返回 /usr/lib/ssl 目录, 执行如下命令生成 CA
$ sudo openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
其中必填项有:
* Country Name (2 letter code) [AU]:
* Common Name (e.g. server FQDN or YOUR name) []:
签名
$ sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
tornado 启动时加上 SSL 选项
复制证书文件到 tornado server 目录下(可选)
修改测试服务器代码 test.py
import tornado.ioloop
import tornado.web
import os
class TestGetHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, World!")
def make_app():
return tornado.web.Application([
(r"/", TestGetHandler),
])
if __name__ == "__main__":
application = make_app()
http_server = tornado.httpserver.HTTPServer(application, ssl_options={
"certfile": os.path.join(os.path.abspath("."), "server.crt"),
"keyfile": os.path.join(os.path.abspath("."), "server.key"),
})
http_server.listen(443)
tornado.ioloop.IOLoop.instance().start()
- 由于端口号小于1000, 因此需要使用 su 权限的用户运行脚本
$ sudo python test.py
客户端访问
浏览器
输入https://localhost
直接访问
CURL
添加 -k
选项忽略 SSL 验证, 如下:
curl -k https://localhost
requests
添加verify=False
选项, 如下:
requests.get(URL, verify=False)
参考
[1] 使用Tornado搭建HTTPS网站, yeolar, http://www.yeolar.com/note/2015/04/30/tornado-ssl-https/
[2] curl - 为什么不能识别自签名的SSL证书?, https://code.i-harness.com/zh-CN/q/10c8411
tornado SSL 证书获取与服务器配置的更多相关文章
- Let’s Encrypt Wildcard 免费泛域名SSL证书获取安装
2018 年 1 月Let’s Encrypt CA 宣布免费提供通配符证书(Wildcard certificate).通配符证书是一种可被多个子域使用的公钥证书.这意味着,单个证书可用于提供多台服 ...
- 使用用户名密码或ssl证书获取zabbix-api token,批量操作管理zabbix-server
概述 Zabbix API 允许你以编程方式检索和修改 Zabbix 的配置,并提供对历史数据的访问.它广泛用于: 创建新的应用程序以使用Zabbix: 将Zabbix与第三方软件集成: 自动执行常规 ...
- 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题
最近需要https这里看到一份不错的博客,收录一下! Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla.Cisco.Akamai.IdenTrust ...
- 申请Let's Encrypt永久免费SSL证书
Let's Encrypt简介 Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla.Cisco.Akamai.IdenTrust.EFF等组织人员发起 ...
- 申请Let’s Encrypt永久免费SSL证书过程教程及常见问题
配置证书https://easy.zhetao.com/ 虽然目前Let’s Encrypt免费SSL证书默认是90天有效期,但是我们也可以到期自动续约,不影响我们的尝试和使用,为了考虑到文章的真 ...
- 转载免费的SSL证书
目前我知道的有2种方式进行免费的SSL证书的获取 第一种:腾讯云申请 第二种:Let's Encrypt (国外在) 我一直使用第一种,还可以,有效期1年. 以下转载第二种: 实战申请Let's En ...
- 服务器配置ssl证书支持苹果ATS方法
服务器配置ssl证书支持苹果ATS方法 发布日期:2016-12-14 苹果安全工程&架构部门主管Ivan Kristic表示ATS将在今年底成为App Sotre app的必要条件,这将大幅 ...
- Apache环境服务器配置Let's Encrypt免费SSL证书及自动续期方法
如今越来越多的网站开始使用SSL证书,实现HTTPS网址形式,如果我们是英文网站更需要用到这样格式的HTTPS网址,因为根据谷歌搜索结果提示到如果用到SSL证书的在同等条件下排名结果是有靠前可能的.我 ...
- centos7利用acme.sh获取Let's Encrypt的永久免费ssl证书并配置网站域名https访问
acme.sh介绍:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E github:https://github.com/Neil ...
随机推荐
- Launcher知识的demo,手机管家小伙家与悬浮窗
Launcher知识的demo.主要仿的手机管家小伙家与悬浮窗的效果.东西比較简单.直接贴代码 主要用到了windowManager 中的更新updateViewLayout(view,params) ...
- 微服务架构之RPC-client序列化细节
通过上篇文章的介绍,知道了要实施微服务,首先要搞定RPC框架,RPC框架的职责要向[调用方]和[服务提供方]屏蔽各种复杂性: (1)让调用方感觉就像调用本地函数一样 (2)让服务提供方感觉就像实现一个 ...
- 结对编程-四则运算GUI的实现
一.项目成员以及coding地址: 洪灏捷(本人)201321122020 coding地址:https://git.coding.net/hoje/The-GUI-operation.git 白至 ...
- 翻译:CREATE DATABASE语句
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- GET请求/百度贴吧 有bug
# -*- coding:utf-8 -*- import urllib, urllib2 import re import sys class Cuzz(): """这 ...
- Bandit Wargame Level12 Writeup
Level Goal The password for the next level is stored in the file data.txt, which is a hexdump of a f ...
- 【转载】Android Studio 导入External Libraries
转载: 世军 Android Studio 导入External Libraries http://www.cnblogs.com/shijunzhang/p/5625432.html 导入本地Li ...
- c语言文件分割与合并
一.综述 c语言操作文件通过文件指针FILE*,每个要操作的文件必须打开然后才能读写. 注意事项: @1分割与合并文件最好使用二进制模式即"rb"或"wb",这 ...
- lesson - 12 Linux系统日常管理1
监控系统状态 – w, vmstat命令w, uptimesystem load averages 单位时间段内活动的进程数 查看cpu的个数和核数vmstat 1vmstat 1 10vmstat各 ...
- 转 - .net/c# 使用RabbitMQ
背景 最近需要用C#写一个Adapter来做数据传输,合作方使用的是RabbitMQ,所以我这边也要跟着写写... 在网上搜索了一些,发现园子里的这篇写的还是非常好的.虽然有点老了,我自己用的是最新的 ...