Есть такое понятие как "центр сертификации". Если вы выпускаете самоподписанный сертификат, то клиент не будет ему доверять, т.к. ваш центр сертификации (ваш сервер, который генерировал сертификат) для него также является не доверенным.
Как правило в современных ОС (android, mac, win) по умолчанию встроены доверенные сертификаты глобальных центров сертификации (thawte, symantec, google и т.п.) именно у них вы сертификат за деньги и покупаете, в противном случае вашим клиентам придется вручную устанавливать корневой сертификат вашего СЦ в доверенные, что не очень безопасно с точки зрения пользователя.