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

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 2039|回复: 2

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

[复制链接]

307

主题

228

回帖

7343

积分

用户组: 真·技术宅

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

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

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

×

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, 2024-4-24 16:35 , Processed in 0.035725 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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