Генерируем корневой сертификат, подписанный собой.
openssl req -new -newkey rsa:2048 -x509 -nodes -keyout cakey.pem -out cacert.pem -days 3650
Сертификат сроком на 10 лет. Опция -nodes означает не шифровать ключ. Если вы параноик, можете убрать.
Далее генерируем запрос на подпись клиентского сертификата
openssl req -new -newkey rsa:1024 -nodes -keyout smtpd.key -out smtpd.csr
Подписываем его корневым сертификатом
openssl x509 -req -CA cacert.pem -CAkey cakey.pem -days 730 -in smtpd.csr -out smtpd.crt -CAcreateserial
В результате имеем: Корневой сертификат cacert.pem Ключ корневого сертификата cakey.pem Клиентский сертификат smtpd.crt Ключ клиентского сертификата smtpd.key
Ключи должны быть доступны только администратору, особенно корневой. Им же нужно подписывать дополнительные сертификаты для клиентов.