У меня есть pem-файл корневого сертификата с сервера Linux. Приложение, которому необходимо подключиться к этому серверу, сообщает мне, что ему нужны pem-файл publicCert и pem-файл privateKey для связи с сервером.
Насколько я понимаю, корневой сертификат, который у меня есть, может затем сгенерировать n сертификатов в качестве промежуточных. Проблема в том, что я изо всех сил пытаюсь заставить openssl делать то, что я хочу, поэтому мой вопрос в том, как мне их точно сгенерировать? Я думал, что я скормлю openssl путь к корневому сертификату, а затем он выгрузит нужный мне publicCert / privateKey.
Я создал сертификаты на сервере, как описано Вот. Теперь мне нужно установить на устройство ниже по потоку, как описано Вот.
Для ввода клиентского соединения, которое мне нужно использовать, требуются следующие параметры:
connString: 'HostName=foo'
protocol: MQTT
publicKeyCertificateString: certificateString or path to certificate
privateKeyString: keyString or path to key
new DeviceClient(connString, protocol, publicKeyCertificateString, privateKeyString);
Если вы не запустите корневой центр сертификации (CA), вы не сможете сгенерировать сертификаты с корневым сертификатом. У вас, вероятно, есть корневые «общедоступные» сертификаты, а не «частные» ключи, которые контролируются центром сертификации. Вы можете создавать только промежуточные сертификаты с корневым закрытым ключом.
Если бы вы могли сделать то, что предлагаете, то любой человек в мире смог бы сам генерировать сертификаты, которые были бы привязаны к доверенному корневому ЦС, что противоречит цели корневого ЦС.