美文网首页
利用letsencrypt搭建免费tornado的https服务

利用letsencrypt搭建免费tornado的https服务

作者: 超哥__ | 来源:发表于2021-07-31 00:57 被阅读0次

    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)
    

    相关文章

      网友评论

          本文标题:利用letsencrypt搭建免费tornado的https服务

          本文链接:https://www.haomeiwen.com/subject/dfdhvltx.html