Я пытаюсь создать локальный веб-сервер, используя Flask
, микрофреймворк Python, который использует PKI в DoD CAC.
Я создал самозаверяющий корневой ЦС и сертификат сервера и ключ, следуя этот набор инструкций. Затем я загрузил необходимые файлы CA из Вот которые были:
Оттуда я загрузил следующее базовое приложение "hello world":
import ssl
from flask import Flask
app = Flask(__name__)
@app.route("/")
def main():
return "Hello World"
if __name__ == '__main__':
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS)
ctx.verify_mode = ssl.CERT_REQUIRED
ctx.load_verify_locations('DODIDCA_49.pem')
ctx.load_cert_chain('localhost.crt', 'localhost.key')
app.run(ssl_context=ctx)
Это работает на https://127.0.0.1:5000/
и когда я захожу на него через Microsoft Edge, он запрашивает мои учетные данные CAC (которые я могу выбрать для использования и ввести свой PIN-код). После ввода моего PIN-кода страница перезагружается и сообщает, что веб-сайт небезопасен. Если бы я удалил verify_mode
и load_verify_locations
строк, мне больше не предлагается вводить мои учетные данные CAC, и веб-сайт загружается для печати текста.
Мне нужна предыдущая последовательность, которая требует от меня выбора действительных учетных данных, но я не могу понять, как заставить браузеры доверять сертификатам сервера в сочетании с предоставленными центрами сертификации DoD.
Как я могу сделать это в Windows 10?