技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 178|回复: 0
收起左侧

使用letsencrypt免费证书搭建tornado的https服务

[复制链接]

291

主题

479

帖子

5283

积分

用户组: 真·技术宅

UID
2
精华
71
威望
158 点
宅币
4002 个
贡献
131 次
宅之契约
0 份
在线时间
688 小时
注册时间
2014-1-25
发表于 2021-7-31 01:03:29 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x

letsencrypt是个非盈利组织,他们搞出来一整套自动授权ssl免费证书体系,方便了很多中小用户。这里笔者参照官方网站一步步完成:https://certbot.eff.org/。certbot是letsencrypt团队研发的自动化更新ssl证书的工具

笔者的服务器是centos7+tornado自己搭建的,因此需要手动DIY一小部分操作,如果你的服务器是nginx/apache之类的,certbot直接提供了自动化功能。

确保使用root权限进行如下操作:

1 按certbot官网说明,先安装snapd,这玩意儿用来做软件包管理器了. https://snapcraft.io/docs/installing-snap-on-centos

yum install snapd
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap

2  安装certbot

snap install core
snap refresh core
yum remove certbot
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
# 如果可以停止服务器
certbot certonly --standalone
# 如果不能停止服务器
certbot certonly --webroot

此时,certbot从远程服务器生成并下载证书到你的服务器,并给你生成Cert和Key:

/etc/letsencrypt/live/[HOST]/fullchain.pem
/etc/letsencrypt/live/[HOST]/privkey.pem

letsencrypt证书有效期为90天,certbot会在证书过期前自动更新,这样在更新前,我们需要停止服务器,再更新后再启动服务器。certbot专门为这种需求提供了hook功能,即用户只需要写启动关闭自己服务器的功能脚本(/etc/letsencrypt/renewal-hooks/pre和/etc/letsencrypt/renewal-hooks/post),即可实现在certbot更新域名前自动停止服务器,在更新域名后自动启动服务器。(certbot更新证书过程需要占用本地80端口,所以要先关掉服务,而证书文件的更新,也必然需要重启https服务)

在tonado中,相应的开发代码:

https_server = tornado.httpserver.HTTPServer(application, decompress_request=True, ssl_options={
        "certfile": "/etc/letsencrypt/live/域名/fullchain.pem",
        "keyfile": "/etc/letsencrypt/live/域名/privkey.pem",
    })
https_server.listen(443)

回复

使用道具 举报

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2021-10-24 05:01 , Processed in 0.072952 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表