sadece senin müşterin ve sunucu, size (ve) bir şey satın almadan SSL kullanabilirsiniz. Sunucu ve istemciyi kontrol edersiniz, bu nedenle her biri yalnızca bir sertifikaya güvenmeli, diğeri diğerine ait olmalı ve bu amaçla CA'ya ihtiyacınız yok.
İşte üst düzey yaklaşım. Kendinden imzalı bir sunucu SSL sertifikası oluşturun ve web sunucunuza dağıtın. Bu amaç için Android SDK ile verilen tuş takımını kullanabilirsiniz. Ardından, kendinden imzalı bir istemci oluşturun ve uygulamanızda bir kaynak olarak uygulamanıza dahil edilen bir özel anahtar deposunda uygulamanızı dağıtın (tuş takımı bunu da oluşturur). Sunucuyu istemci tarafında SSL kimlik doğrulaması gerektirecek şekilde yapılandırın ve yalnızca oluşturduğunuz istemci sertifikasını kabul edin. İstemciyi, kendisini tanımlamak için bu istemci tarafı sertifikasını kullanacak şekilde yapılandırın ve yalnızca sunucunuzun o tarafında yüklü olan sunucu tarafı sertifikasını kabul edin.
Bunun için adım adım, burada garantilendiğinden çok daha uzun bir yanıttır. Web'de hem sunucu hem de istemci tarafında, kendinden imzalı SSL sertifikasıyla nasıl başa çıkılacağına dair kaynaklar olduğu için bunu aşamalı olarak öneririm. Ayrıca O'Reilly tarafından yayınlanan kitabımda Application Security for the Android Platform kitabında da eksiksiz bir yürüyüş var.
(Eğer Android kullanıyorsanız bir KeyStore) Normalde sometype bir anahtar deposundaki o sertifikası/özel anahtar saklamak ve bundan sonra bu anahtar deposu şifreli olacak. Bu şifreleme bir şifreye dayanmaktadır, bu yüzden ya (1) bu şifreyi istemcinizde bir yere saklamanız ya da (2) kullanıcıya, istemci uygulamanızı başlattıklarında şifre sormanız gerekir. Yapmanız gereken şey, sizin kişisel durumunuza bağlıdır. Eğer (2) kabul edilebilir ise, o zaman şifreleneceğinden ve şifrenin herhangi bir yerde saklanmayacağından (aksi halde kullanıcının her zaman yazması gerekeceğinden), ters mühendisliğinize karşı güvenliğinizi korudunuz. (1) 'i yaparsanız, birileri müşterinizi tersine çevirebilir, şifreyi alabilir, anahtar deposunu alabilir, özel anahtarı ve sertifikayı şifreleyebilir ve sunucuya bağlanabilecek başka bir istemci oluşturabilir.
Bunu önlemek için yapabileceğiniz hiçbir şey yoktur; kodunuzu tersine mühendislik yaparak (gizleme yoluyla) yapabilirsiniz, ancak bunu imkansız kılabilirsiniz. Bu yaklaşımlarla hangi riski azaltmaya çalıştığınızı belirlemeniz gerekir ve bunu azaltmak için ne kadar çaba harcanması gerekir.
[Bu] gibi bir şey hakkında (http://www.javaranch.com/journal/200603/WSSecurity.html)? – loscuropresagio