我正在制作一个使用开放式ssl的烧瓶应用程序。到目前为止,我已经做到了这一点:
from flask.ext.script import Manager, Server
from flask.ext.migrate import Migrate, MigrateCommand
from OpenSSL import SSL
import os
from project import app, db
app.config.from_object(os.environ['APP_SETTINGS'])
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
manager.add_command("runserver", Server(ssl_context=('./server.crt', './server.key')))
if __name__ == '__main__':
manager.run()
当我运行服务器时,我发现Firefox想要为无法确认的连接添加例外,或者Chrome表示如果我想继续无法确认连接,则表示该连接并非如此。 一定是那样吗?我需要改变什么吗?
答案 0 :(得分:1)
我自己假设你server.crt
和server.key
。在这种情况下,Firefox警告是正确的。您所做的是创建一个“自签名”证书,几乎所有浏览器在遇到其中一个证书时都会发出警告,因为它们不是由受信任的证书颁发机构创建的(而是由您自己随机创建的)。
如果您想在没有警告的情况下使用SSL,则需要从浏览器信任的经过验证的公司获取SSL。 Let's Encrypt offers free certificates(并且受到所有主流浏览器的信任),还会出现一些其他免费选项。
当Firefox看到由受信任的CA(证书颁发机构)签署的证书时,它会假定他们已经完成了尽职调查以确认您确实拥有了您的证书所声称的域名,并继续使用您的网站使用SSL投诉。