我是在windows server上用web.py构建的服务器,怎么开启https-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

我是在windows server上用web.py构建的服务器,怎么开启https

邹擎苍 2018-09-06 22:05:49 2820
我是在windows server上用web.py构建的服务器,怎么用阿里云的ssl证书开启https服务?
代码如下:

import web
from model import config
from cheroot.server import HTTPServer
from cheroot.ssl.builtin import BuiltinSSLAdapter


class index:
    def GET(self,name):
        render=web.template.render("templates/")
        if not name:
            return render.index("none")
        elif name == "home":
            cursor = config.dataconfig().table_article()
            return render.home(cursor)
        elif name == "product":
            cursor = config.dataconfig().table_product()
            return render.product(cursor)
        elif name == "crowfunding":
            cursor = config.dataconfig().table_crowfunding()
            return render.crowfunding(cursor)
        elif name.startswith("article"):
            articleIndex = name.split("/")[1]
            return render.article(config.dataconfig().article(int(articleIndex)))


ssl_certificate = "D:/main/cert/214530877520094.pem"
ssl_private_key = "D:/main/cert/214530877520094.key"
ssl_chain = "D:/main/cert/chain.pem"
HTTPServer.ssl_adapter = BuiltinSSLAdapter(
    certificate=ssl_certificate,
    private_key=ssl_private_key,
    certificate_chain=ssl_chain)


urls = ('/(.*)','index')
app = web.application(urls,globals())
if __name__== "__main__":
    app.run()

网络安全 Windows Python
分享到
取消 提交回答
全部回答(3)
  • dongshan8
    2018-09-08 10:25:38
    楼主您好,

    估计不用做证书转换。请看这里的例子: http://webpy.org/cookbook/ssl

    您设置了,是从外网访问不了,还是web.py报错呢?

    -------------------------

    回 4楼(邹擎苍) 的帖子
    您好,

    为您实践了一下,请看这个帖子:《在 web.py 中用阿里云的免费证书设置https访问》 - https://bbs.aliyun.com/read/588678.html?

    虽然例子中的是Debian系统,估计和在Windows的,差不多。

    -------------------------

    回 6楼(邹擎苍) 的帖子
    您好,

    如果可以,建议是让nginx来处理https,web.py 在后端路。
    0 0
  • 邹擎苍
    2018-09-07 16:47:24
    回 1楼服务器云的帖子
    我问的是,在web.py环境下,阿里云的证书是否需要用openssl转换,如果需要转换,要怎么转换?直接用pem和key文件好像不行,加入chain还不行

    -------------------------

    回 3楼dongshan8的帖子
    外网访问不了,openssl s_client -connect weixiaostudio.cn:443也是no peer certificates available,no client certificate ca names sent

    -------------------------

    Re我是在windows server上用web.py构建的服务器,怎么开启https
    用iis构造的证书openssl之后是这样的:

    另外我用的是python3.4,web.py是web.py 0.40的,所以必须用我的代码构建,否则,像你的帖子一样构建https,编译器就会报错

    -------------------------

    Re我是在windows server上用web.py构建的服务器,怎么开启https
    多谢,我已改用django,并已成功使用python manage.py runserver_plus开启https,虽然证书还是有问题,但不妨碍继续浏览
    0 0
  • 服务器云
    2018-09-07 09:39:49

    没用过python,但有个地方要注意下,
    1. ssl_certificate = "D:/main/cert/214530877520094.pem"
    2. ssl_private_key = "D:/main/cert/214530877520094.key"

    windows路径应该用反斜杠
    1. ssl_certificate = "D:\main\cert\214530877520094.pem"
    2. ssl_private_key = "D:\main\cert\214530877520094.key"
    以前遇到过这个坑......小心。



    0 0
添加回答
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程