Prior to Android KitKat you have to root your device to install new certificates.

From Android KitKat (4.0) up to Marshmallow (6.0) it's possible and easy. I was able to install the Charles Web Debbuging Proxy cert on my un-rooted device and successfully sniff SSL traffic.

Extract from http://wiki.cacert.org/FAQ/ImportRootCert

Before Android version 4.0, with Android version Gingerbread & Froyo, there was a single read-only file ( /system/etc/security/cacerts.bks ) containing the trust store with all the CA ('system') certificates trusted by default on Android. Both system apps and all applications developed with the Android SDK use this. Use these instructions on installing CAcert certificates on Android Gingerbread, Froyo, ...

Starting from Android 4.0 (Android ICS/'Ice Cream Sandwich', Android 4.3 'Jelly Bean' & Android 4.4 'KitKat'), system trusted certificates are on the (read-only) system partition in the folder '/system/etc/security/' as individual files. However, users can now easily add their own 'user' certificates which will be stored in '/data/misc/keychain/certs-added'.

System-installed certificates can be managed on the Android device in the Settings -> Security -> Certificates -> 'System'-section, whereas the user trusted certificates are manged in the 'User'-section there. When using user trusted certificates, Android will force the user of the Android device to implement additional safety measures: the use of a PIN-code, a pattern-lock or a password to unlock the device are mandatory when user-supplied certificates are used.

Installing CAcert certificates as 'user trusted'-certificates is very easy. Installing new certificates as 'system trusted'-certificates requires more work (and requires root access), but it has the advantage of avoiding the Android lockscreen requirement.

From Android N (7.0) onwards it gets a littler harder, see this extract from the Charles proxy website:

As of Android N, you need to add configuration to your app in order to have it trust the SSL certificates generated by Charles SSL Proxying. This means that you can only use SSL Proxying with apps that you control.

In order to configure your app to trust Charles, you need to add a Network Security Configuration File to your app. This file can override the system default, enabling your app to trust user installed CA certificates (e.g. the Charles Root Certificate). You can specify that this only applies in debug builds of your application, so that production builds use the default trust profile.

Add a file res/xml/network_security_config.xml to your app:

<network-security-config>    
    <debug-overrides> 
        <trust-anchors> 
            <!-- Trust user added CAs while debuggable only -->
            <certificates src="user" /> 
        </trust-anchors>    
    </debug-overrides>  
</network-security-config>

Then add a reference to this file in your app's manifest, as follows:

<?xml version="1.0" encoding="utf-8"?> 
<manifest>
    <application android:networkSecurityConfig="@xml/network_security_config">
    </application> 
</manifest>
Answer from Dean Wild on Stack Overflow
🌐
SSL Dragon
ssldragon.com › home › tutorials › how to install an ssl certificate › how to install an ssl certificate on android
How to Install an SSL Certificate on Android - SSL Dragon
January 23, 2025 - This extensive guide offers detailed instructions on how to generate install an SSL Certificate on Android OS.
🌐
SSL2BUY
ssl2buy.com › home › wiki › how to install ssl certificate on android: an expert guide
How to Install SSL Certificate on Android Device?
January 3, 2025 - Discover how to install SSL certificate on Android devices with our Expert guide. Enhance security on Pixel, OnePlus, and Samsung. Learn more now!
Top answer
1 of 12
144

Prior to Android KitKat you have to root your device to install new certificates.

From Android KitKat (4.0) up to Marshmallow (6.0) it's possible and easy. I was able to install the Charles Web Debbuging Proxy cert on my un-rooted device and successfully sniff SSL traffic.

Extract from http://wiki.cacert.org/FAQ/ImportRootCert

Before Android version 4.0, with Android version Gingerbread & Froyo, there was a single read-only file ( /system/etc/security/cacerts.bks ) containing the trust store with all the CA ('system') certificates trusted by default on Android. Both system apps and all applications developed with the Android SDK use this. Use these instructions on installing CAcert certificates on Android Gingerbread, Froyo, ...

Starting from Android 4.0 (Android ICS/'Ice Cream Sandwich', Android 4.3 'Jelly Bean' & Android 4.4 'KitKat'), system trusted certificates are on the (read-only) system partition in the folder '/system/etc/security/' as individual files. However, users can now easily add their own 'user' certificates which will be stored in '/data/misc/keychain/certs-added'.

System-installed certificates can be managed on the Android device in the Settings -> Security -> Certificates -> 'System'-section, whereas the user trusted certificates are manged in the 'User'-section there. When using user trusted certificates, Android will force the user of the Android device to implement additional safety measures: the use of a PIN-code, a pattern-lock or a password to unlock the device are mandatory when user-supplied certificates are used.

Installing CAcert certificates as 'user trusted'-certificates is very easy. Installing new certificates as 'system trusted'-certificates requires more work (and requires root access), but it has the advantage of avoiding the Android lockscreen requirement.

From Android N (7.0) onwards it gets a littler harder, see this extract from the Charles proxy website:

As of Android N, you need to add configuration to your app in order to have it trust the SSL certificates generated by Charles SSL Proxying. This means that you can only use SSL Proxying with apps that you control.

In order to configure your app to trust Charles, you need to add a Network Security Configuration File to your app. This file can override the system default, enabling your app to trust user installed CA certificates (e.g. the Charles Root Certificate). You can specify that this only applies in debug builds of your application, so that production builds use the default trust profile.

Add a file res/xml/network_security_config.xml to your app:

<network-security-config>    
    <debug-overrides> 
        <trust-anchors> 
            <!-- Trust user added CAs while debuggable only -->
            <certificates src="user" /> 
        </trust-anchors>    
    </debug-overrides>  
</network-security-config>

Then add a reference to this file in your app's manifest, as follows:

<?xml version="1.0" encoding="utf-8"?> 
<manifest>
    <application android:networkSecurityConfig="@xml/network_security_config">
    </application> 
</manifest>
2 of 12
45

I spent a lot of time trying to find an answer to this (I need Android to see StartSSL certificates). Conclusion: Android 2.1 and 2.2 allow you to import certificates, but only for use with WiFi and VPN. There is no user interface for updating the list of trusted root certificates, but there is discussion about adding that feature. It’s unclear whether there is a reliable workaround for manually updating and replacing the cacerts.bks file.

Details and links: http://www.mcbsys.com/techblog/2010/12/android-certificates/. In that post, see the link to Android bug 11231--you might want to add your vote and query to that bug.

🌐
Google Support
support.google.com › pixelphone › answer › 2844832
Add & remove certificates - Pixel Phone Help
If an app or network that you want to use needs a certificate that you don't have, you can install that certificate manually. Digital certificates identify computers, phones, apps, and other devices for security. Just like you'd use your driver’s license to show that you can legally drive, a digital certificate identifies your device and confirms that it should be able to access something. Important: Some of these steps work only on Android 9.0 and up.
🌐
Support
support.securly.com › hc › en-us › articles › 212869927-Filter-How-to-install-Securly-SSL-certificate-on-Android-device
Filter - How to install Securly SSL certificate on Android device – Support
This article provides a couple of different ways in which you install the Securly SSL certificate. ... Download the Securly SSL certificate file securly_ca_2034.crt on your Android device.
🌐
Ivanti
help.ivanti.com › ap › help › en_US › fd › 2021 › Content › FileDirector › Admin › Clients › Install_Root_Certificate_on_Android.htm
Install Root Certificate on Android
In this case, you will need to install the trusted root SSL certificate on each of your client devices. You can avoid having to install the trusted root certificate onto each client by using certificates signed by a public CA. Free, time-limited certificates are available from some public CAs ...
🌐
Cheap SSL Web
cheapsslweb.com › home › how to install an ssl certificate on android?
How to Install an SSL Certificate on Android? [Quick Way]
February 3, 2023 - Step-by-step instructions on how to install an SSL certificate on Android. Create a CSR and follow steps to install SSL certificate.
🌐
N4L Support
support.n4l.co.nz › s › article › Installing-an-SSL-Certificate-on-an-Android-Device-Manually
Installing an SSL or TLS Certificate on an Android Device (Manually)
This article describes the step by step process of manual installation of a Trusted Root Certification Authority SSL or TLS Certificate on an individual Android device.
Find elsewhere
🌐
FlashStart
docs.flashstart.com › installing-ssl-certificates-on-android
Installing SSL Certificates on Android - FlashStart Docs
Enhance your Android device's security with our comprehensive guide on installing SSL certificates.
🌐
Certera
certera.com › home › how to install ssl certificate on android?
How to Install SSL Certificate on Android Device?
October 15, 2024 - Security of the world’s most prevalent mobile operating system – Android, is the need of the hour. Our focus centers on seamlessly installing SSL Certificates, transforming your device into a fortress against cyber threats.
🌐
Meraki Community
community.meraki.com › t5 › Mobile-Device-Management › Enrolling-Android-Devices-Install-SSL-Certificate › m-p › 232600
Re: Enrolling Android Devices - Install SSL Certificate - The Meraki Community
March 29, 2024 - You can easily find a way from here https://cheapsslweb.com/blog/ssl-certificates-installation-tutorials about SSL Installation on Android.
🌐
Reddit
reddit.com › r/selfhosted › has anyone had luck loading their self signed ssl cert onto android?
r/selfhosted on Reddit: Has anyone had luck loading their self signed SSL cert onto Android?
August 3, 2025 -

I have an OpenSSL self signed cert that I use for self hosted services. I want to load it on my Android device so that I don't have to click through the cert warnings on web pages. No matter what I do, I just can't get it to work. I am using Android 13, Firefox Android, and a wildcard cert. Has anyone had success doing this?

Edit: Some additional summarized details:

  • Android 13

  • The device is fully up to date with what updates are accessible

  • Firefox Android 141.0.1

  • Tried importing in .cert and .pem formats

  • Tried importing from internal and SD card format

  • Tried importing through CA certificate setting and Files app

  • Main issue is that when attempting to import the cert, the settings app returns to the certificates page with no success/error message, as if it has crashed. This occurs after the workflow of selecting the cert file.

🌐
Meraki Community
community.meraki.com › t5 › Mobile-Device-Management › Enrolling-Android-Devices-Install-SSL-Certificate › m-p › 103631
Enrolling Android Devices - Install SSL Certificate - The Meraki Community
October 24, 2020 - 1) Obtain the SSL Certificate 2) Transfer the Certificate to the Android Device 3) Open Settings on the Android Device 4) Find the Security or Certificates Section 5) Install the Certificate 6) Locate and Select the Certificate File 7) Configure ...
🌐
GlobalSign
globalsign.com › en › blog › installing-certificates-onto-android-devices
PKCS#12: How to Download and Install It onto Your Android Device
December 24, 2024 - Learn how to download and install a digital certificate, .pfx or PKCS#12 file onto your Android device with our easy to follow, step-by-step guide.
🌐
Comodo SSL
comodosslstore.com › home › how to install an ssl certificate on android
How to Install SSL Certificate on Android
June 21, 2023 - Install an SSL Certificate on android using the instruction in this article. Here is step by step instructions on how to install an SSL Certificate on Latest android version.
Top answer
1 of 1
3

Google has a special guide for cases like yours.

Here is a little quote about what you need:

Unknown certificate authority In this case, the SSLHandshakeException occurs because you have a CA that isn't trusted by the system. It could be because you have a certificate from a new CA that isn't yet trusted by Android or your app is running on an older version without the CA. More often a CA is unknown because it isn't a public CA, but a private one issued by an organization such as a government, corporation, or education institution for their own use.

Fortunately, you can teach HttpsURLConnection to trust a specific set of CAs. The procedure can be a little convoluted, so below is an example that takes a specific CA from an InputStream, uses it to create a KeyStore, which is then used to create and initialize a TrustManager. A TrustManager is what the system uses to validate certificates from the server and—by creating one from a KeyStore with one or more CAs—those will be the only CAs trusted by that TrustManager.

Given the new TrustManager, the example initializes a new SSLContext which provides an SSLSocketFactory you can use to override the default SSLSocketFactory from HttpsURLConnection. This way the connection will use your CAs for certificate validation.

Here is the example in full using an organizational CA from the University of Washington:

// Load CAs from an InputStream
// (could be from a resource or ByteArrayInputStream or ...)
CertificateFactory cf = CertificateFactory.getInstance("X.509");
// From https://www.washington.edu/itconnect/security/ca/load-der.crt
InputStream caInput = new BufferedInputStream(new FileInputStream("load-der.crt"));
Certificate ca;
try {
    ca = cf.generateCertificate(caInput);
    System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
} finally {
    caInput.close();
}

// Create a KeyStore containing our trusted CAs
String keyStoreType = KeyStore.getDefaultType();
KeyStore keyStore = KeyStore.getInstance(keyStoreType);
keyStore.load(null, null);
keyStore.setCertificateEntry("ca", ca);

// Create a TrustManager that trusts the CAs in our KeyStore
String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
tmf.init(keyStore);

// Create an SSLContext that uses our TrustManager
SSLContext context = SSLContext.getInstance("TLS");
context.init(null, tmf.getTrustManagers(), null);

// Tell the URLConnection to use a SocketFactory from our SSLContext
URL url = new URL("https://certs.cac.washington.edu/CAtest/");
HttpsURLConnection urlConnection =
    (HttpsURLConnection)url.openConnection();
urlConnection.setSSLSocketFactory(context.getSocketFactory());
InputStream in = urlConnection.getInputStream();
copyInputStreamToOutputStream(in, System.out);

So just put your crt file to resources folder and then run this code, changing the caInput to:

InputStream caInput = getResources().openRawResource(R.raw.cert);
🌐
AirDroid
airdroid.com › home › mdm › how to install certificates on android: a complete guide for ssl, ca & more
How to Install Certificates on Android: A Complete Guide for SSL, CA & More
August 28, 2025 - Learn how to install SSL, CA, and enterprise certificates on Android devices, enhancing security and compliance with AirDroid Business.