tornado SSL 證書獲取與服務器配置


轉載注明出處: http://www.cnblogs.com/ityoung/p/8296088.html
自動化測試/持續集成/測試開發 QQ交流群: 70160503

服務端生成證書

進入 openssl 目錄

$ cd /usr/lib/ssl

生成私鑰

$ sudo openssl genrsa -des3 -out server.key 1024

生成 CSR 文件

$ sudo openssl req -new -key server.key -out server.csr -config openssl.cnf

其中必填項有:

* Country Name (2 letter code) [AU]:

* Common Name (e.g. server FQDN or YOUR name) []:

生成 CA (用於自簽名)

  • 新建demoCA, demoCA/certs, demoCA/newcerts

$ sudo mkdir demoCA demoCA/certs demoCA/newcerts

  • 在 demoCAm 目錄下新建空文件 index.txt

  • 在 demoCAm 目錄下新建文件 serial, 內容是一個合法的 16 進制數字, 例如 0000

  • 返回 /usr/lib/ssl 目錄, 執行如下命令生成 CA

$ sudo openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

其中必填項有:

* Country Name (2 letter code) [AU]:

* Common Name (e.g. server FQDN or YOUR name) []:

簽名

$ sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

轉載注明出處: http://www.cnblogs.com/ityoung/p/8296088.html


tornado 啟動時加上 SSL 選項

  • 復制證書文件到 tornado server 目錄下(可選)

  • 修改測試服務器代碼 test.py


import tornado.ioloop
import tornado.web
import os

class TestGetHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, World!")

def make_app():
    return tornado.web.Application([
        (r"/", TestGetHandler),
    ])

if __name__ == "__main__":
    application = make_app()
    http_server = tornado.httpserver.HTTPServer(application, ssl_options={
           "certfile": os.path.join(os.path.abspath("."), "server.crt"),
           "keyfile": os.path.join(os.path.abspath("."), "server.key"),
    })
    http_server.listen(443)
    tornado.ioloop.IOLoop.instance().start()

  • 由於端口號小於1000, 因此需要使用 su 權限的用戶運行腳本

$ sudo python test.py


客戶端訪問

瀏覽器

輸入https://localhost直接訪問

CURL

添加 -k 選項忽略 SSL 驗證, 如下:

curl -k https://localhost

requests

添加verify=False選項, 如下:

requests.get(URL, verify=False)

轉載注明出處: http://www.cnblogs.com/ityoung/p/8296088.html


參考

[1] 使用Tornado搭建HTTPS網站, yeolar, http://www.yeolar.com/note/2015/04/30/tornado-ssl-https/
[2] curl - 為什么不能識別自簽名的SSL證書?, https://code.i-harness.com/zh-CN/q/10c8411

轉載注明出處: http://www.cnblogs.com/ityoung/p/8296088.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM