Необходимо будет ознакомить себя с терминологией и механизмами сначала.
сертификат X.509 , по определению, не включает закрытый ключ. Вместо этого это - подписанная версия CA открытого ключа (наряду с любыми атрибутами, которые CA помещает в подпись). PEM форматируют действительно только отдельную систему хранения поддержек ключа и сертификата - хотя можно тогда связать два.
В любом случае, необходимо будет вызвать 20 + различные функции OpenSSL API для создания ключа и самоподписанного сертификата. Пример находится в самом источнике OpenSSL, в demos/x509/mkcert.c
Для более подробного ответа, см. объяснение Nathan Osman ниже.
Шанс выполнения этого через system
вызов из Вашего приложения? Несколько серьезных оснований для того, чтобы сделать это:
Лицензирование: Вызов openssl
исполняемый файл возможно разделяет его от Вашего приложения и может обеспечить определенные преимущества. Правовая оговорка: консультируйтесь с адвокатом по поводу этого.
Документация: OpenSSL идет феноменальный документация командной строки, которая значительно упрощает потенциально сложный инструмент.
Тестируемость: можно осуществить OpenSSL из командной строки, пока Вы не понимаете точно, как создать Ваши сертификаты существует партия из опций; ожидайте проводить приблизительно день на это, пока Вы не разберетесь во всех подробностях. После этого это тривиально для слияния команды в приложение.
, Если Вы принимаете решение использовать API, проверьте эти openssl-dev
список разработчиков на www.openssl.org.
Удачи!