qtwebengine сохранить сертификат ssl в хранилище nss - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь добавить новый сертификат ssl (около x509) в хранилище nss (в Linux). После копирования сертификата в / usr / share / ca-Certificates и запуска сценария update-ca-Certificate он сохранит этот файл в / etc / ssl / certs. Это изменение выполняет ловушки в /etc/ca-certificates/update.d. Я уже создал там скрипт обновления nss. Он сохранит изменения в масштабе всей системы (/ etc / pki / nssdb) через certuil.

certutil -A -n $(basename $CERT) -t "CT,C,C" -i /usr/share/ca-certificates/$CERT -d /etc/pki/nssdb

Мое приложение на основе qtwebengine (5.12) -> chromium автоматически проверяет, существует ли файл /home/xxx/.pki/nssdb. Если нет, он скопирует содержимое из всей системы. Таким образом, все сертификаты теперь синхронизированы, и приложение загружает эту базу данных в память перед запуском.

Основная проблема возникает, когда я хочу добавить новый сертификат во время выполнения приложения. Я могу добавить новый сертификат в CA-сертификат и запустить скрипт обновления. Но даже если хук обновляет общесистемный nssdb (а также в homedir), приложение все еще использует старый. Потому что база данных все еще загружена в память. Изменения с диска загружаются только тогда, когда приложение убито или перезапущено.

Приложение не имеет настраиваемого графического интерфейса и не может быть перезапущено пользователем. Существует только веб-страница без возможности изменить URL.

Так что вопрос в том, как перезагрузить nssdb без перезапуска приложения. Или как сохранить сертификат в nssdb как в браузере Chrome через внутренний API?

Большое спасибо за поддержку.

...