Как отправить цепочку сертификатов ssl клиенту - PullRequest
0 голосов
/ 24 февраля 2020

Я создал Nodejs Websocket сервер или Python на основе. Как отправить цепочку сертификатов клиенту браузера WebSocket, чтобы соединение стало доверенным?

Я описал эту проблему здесь . Я вижу в примерах кодов сервер использует два сертификата - ключ и publi c. Однако файл "ca-bundle" не используется в обоих примерах. Однако в Apache веб-сервере используются все три сертификата.

1 Ответ

1 голос
/ 25 февраля 2020

Apache имеет отдельные параметры конфигурации для файла, содержащего сертификат конечной точки сервера, который он считывает из пути, определенного как SSLCertificateFile , и для файла, содержащего промежуточную цепочку сертификатов, который он читает из пути, определенного как SSLCertificateChainFile .

Python хочет, чтобы конечная точка и промежуточные сертификаты были собраны вместе в одном файле с конечной точкой сервера cert появляется в качестве первого сертификата в этом файле и промежуточных сертификатов, следующих за ним. Путь к этому файлу должен быть передан в качестве аргумента certfile ssl.wrap_socket() или ssl.SSLContext.load_cert_chain(), или любому высокоуровневому API, который вы используете для создания HTTPS сервер. Вы можете создать этот единственный объединенный файл для Python, просто вставив вместе содержимое двух Apache файлов.

Node.js хочет, чтобы конечная точка и промежуточные сертификаты были собраны вместе в одну строку, с сертификат конечной точки сервера, который отображается в качестве первого сертификата в этой строке, и промежуточные сертификаты, следующие после него, - в том же порядке, в котором их хочет Python. Эта строка передается как cert член аргумента options в https.createServer() или в любой другой API, который вы используете для создания вашего HTTPS-сервера. Это зависит от вас, чтобы создать строку сертификата. Ваша программа может сделать это, читая сертификаты из двух отдельных файлов, которые использует Apache, и затем соединяя строки вместе, или она может читать их все в одном go из единого комбинированного файла конечной точки + промежуточного файла, который вы создали для использования. на Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...