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

转载注明出处: http://www.cnblogs.com/ityoung/p/8296088.html


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)

转载注明出处: http://www.cnblogs.com/ityoung/p/8296088.html


参考

[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

转载注明出处: http://www.cnblogs.com/ityoung/p/8296088.html

原文地址:https://www.cnblogs.com/ityoung/p/8296088.html

时间: 2024-08-29 20:35:13

tornado SSL 证书获取与服务器配置的相关文章

获取SSL证书的指纹

每一张SSL证书都有指纹(fingerprint)信息,若要获取,可以通过openssl或者certutil工具,分别在非Windows和Windows平台下使用 基本语法: openssl x509 -fingerprint -in cerfile.crt 若是报无法读取文件,那么极有可能是未指定格式,可尝试如下 openssl x509 -fingerprint -in cerfile.crt -inform PEM openssl x509 -fingerprint -in cerfile

Nginx服务器配置沃通免费SSL证书部署HTTPS网站

本文讲解服务器配置SSL证书部署HTTPS网站. 环境是阿里云服务器ECS ,系统是CentOS6 64bit,Web服务器是Nginx.需要SSL模块的支持. 签发SSL证书的CA机构是 沃通电子认证服务有限公司 WoSign CA Limited. 部署HTTPS网站一般需要有服务器的控制权,(云)主机.VPS均可,虚拟主机基本上做不到.具体步骤如下: 方法/步骤 向CA机构申请SSL证书 SSL证书的价格一般较贵,申请之前可以去网上搜索一下,最好选择信任度高.浏览器和移动终端支持较好的机构

如何获取ssl证书呢?

下面小编在这里为大家总结一下: 首先SSL证书是由全球信任的证书颁发机构(CA)验证服务器身份后颁发,可实现网站身份验证与数据加密传输双重功能.用户要想使用SSL证书,需要在证书服务商处申请购买. ssl证书使用的意义:对于站长来说,只有获取到SSL证书,才能在网站服务器中安装配置,让网站实现HTTPS访问.SSL主要服务于HTTPS,而HTTPS就相当于HTTP+SSL,是HTTP的安全版,启用HTTPS的网站,对服务器安全及访问用户都有着更好的保密性,能有效避免保护用户隐私与数据独享,同时百

八大免费SSL证书-给你的网站免费添加Https安全加密

评论? https://www.freehao123.com/top-8-free-ssl-cert/ 文章目录 Let's Encrypt StartSSL SSL CloudFlare SSL Wosign沃通SSL 腾讯云DV SSL 免费SSL总结 SSL证书,用于加密HTTP协议,也就是HTTPS.随着淘宝.百度等网站纷纷实现全站Https加密访问,搜索引擎对于Https更加友好,加上互联网上越来越多的人重视隐私安全,站长们给网站添加SSL证书似乎成为了一种趋势. 给自己的网站添加SS

【转】IIS - 自动申请、部署Let's Encrypt的免费SSL证书

IIS - 自动申请.部署Let's Encrypt的免费SSL证书(让网站实现HTTPS协议) 2017-12-19发布:hangge阅读:161 一.HTTPS 协议介绍 1,什么是 HTTPS 协议? HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,即 HTTP 的安全版. 简单来说 HTTPS 就是在 HTTP 上面加了一层 SSL 协议.我们可以在 HTTP 站点上部署 S

在HAProxy中使用SSL证书进行连接

一.环境介绍 接到通知,要求网站由http改为使用https,目前我的网站前端架构如下图所示: 假设我们有两台物理机,每台物理机上面有很多的tomcat容器,前端使用的是haproxy进行的http层负载均衡,再前端我们使用了LVS负载均衡,整个LVS使用的是DR模型. 刚开始我打算把tomcat改成https,设置成之后再设置haproxy的时候,发现haproxy不能再使用负载均衡了,因为SSL是在第四层的,所以这个方案就结束了,下面我就尝试在haproxy层设定SSL,到后端还使用普通的连

阿里云和腾讯云免费SSL证书

概述 什么是SSL证书 通俗的来讲SSL和TSL都是属于网络传输的安全协议,而SSL继承于TSL,且SSL是一种更为安全的加密协议. SSL和TSL的体现: TSL是通过浏览器以http://来访问,默认端口是80: SSL是通过浏览器以https://来访问,默认端口是443. 为什么要使用SSL SSL更加安全 在使用微信小程序开发时与后台数据交互必须使用https传输,即SSL协议 SSL如何获得 SSL证书在很多网站上都有出售,且价格都不便宜(对我来说蛮贵的) 在阿里云和腾讯云上面都有免

使用 Let's Encrypt 签发免费SSL 证书

Let's Encrypt 是新出现的证书颁发机构,他是开源并且自动化的. 官方首页:https://letsencrypt.org/ 项目代码:https://github.com/certbot/certbot 有关此项目的详细信息,请到官方了解.这里说说Let's Encrypt client 的事情. 安装: 可使用git 克隆项目,亦可wget 下载项目 下载 git clone https://github.com/letsencrypt/letsencrypt 安装,并显示帮助信息

使用Let's Encrypt客户端免费申请SSL证书

Mozilla.思科.Akamai.IdenTrust.EFF 和密歇根大学研究人员联合宣布了 Let's Encrypt CA 项 目,计划为网站提供免费的基本 SSL 证书,以加速互联网从 HTTP 向 HTTPS 过渡.Let's Encrypt CA 将由非赢利组织 Internet Security Research Group (ISRG) 运营,今天12月4日凌晨项目正式进入公测阶段,遂赶紧进行申请试用一下. 之前我申请证书都是用BS方式,这次是CS方式,感觉挺新鲜. 我的服务器环