Openssl предоставляет различные функции, и вы можете использовать их. Лучше искать больше или посетить openssl org. И внимательно прочитайте описание каждой функции.
Вы можете сделать то же, что и на linux (возможно),
- Создать PrivateKey для сертификата конечной сущности.
EVP_PKEY *pkey = EVP_PKEY_new(void);
См .: https://www.openssl.org/docs/man1.1.0/man3/EVP_PKEY_new.html
Создайте RSA и установите для него PrivateKey
RSA *rsa = RSA_generate_key(1024, 3, 0, 0);
EVP_PKEY_set1_RSA(pkey, RSA *key);
См. Также https://www.openssl.org/docs/manmaster/man3/EVP_PKEY_set1_RSA.html
Создать X509
X509 *cert = X509_new(void);
Установить pubkey (соответствующий ключ для сережки, сделанной приватным ключом)
X509_set_pubkey(cert, pkey);
Сделайте подпись для clientEP, используя закрытый ключ cliendCA.
X509_sign(cert, pkey, 0); // third param is a hashing option.
Установить указанный c профиль сертификата. (Я могу пропустить некоторые конкретные c шагов, но вы можете это сделать)
Вы можете получить информацию, когда будете больше гуглить. Кроме того, openssl предоставляет API для записи, такие как BIO_write или PEM_write_X509 и т. Д.
Надеюсь, это будет полезно.