开发者社区> 问答> 正文

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

我是在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()

展开
收起
邹擎苍 2018-09-06 22:05:49 4342 0
3 条回答
写回答
取消 提交回答
  • 旺旺:nectar2。
    楼主您好,

    估计不用做证书转换。请看这里的例子: 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 在后端路。
    2018-09-08 10:25:38
    赞同 展开评论 打赏
  • 回 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,虽然证书还是有问题,但不妨碍继续浏览
    2018-09-07 16:47:24
    赞同 展开评论 打赏

  • 没用过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"
    以前遇到过这个坑......小心。



    2018-09-07 09:39:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
CDN助力企业网站进入HTTPS时代 立即下载
TAKING WINDOWS 10 KERNEL 立即下载
ECS运维指南之Windows系统诊断 立即下载