Генерируем корневой сертификат, подписанный собой.
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
Ключи должны быть доступны только администратору, особенно корневой. Им же нужно подписывать дополнительные сертификаты для клиентов.
openssl s_client -connect mail.server.ru:993 -showcerts openssl s_client -connect mail.server.ru:465 -showcerts