在移动端配置国密证书,主要是为了让你的  iOS  或  Android  设备能信任并正常访问使用国密算法(SM2)的网站或服务。

具体操作上,iOS  和  Android  略有不同,但**最关键的步骤都是要将国密的“根证书”安装到你的设备上,并在系统设置中明确启用信任**。

安装前的准备

在开始前,请确保你手头有以下文件和信息:

国密根证书文件:通常从你所使用的国密证书颁发机构(CA)获取,文件后缀名可能是  `.crt`、`.cer`、`.pem`  或  `.p12`。

设备锁屏密码:iOS  和  Android  在安装证书时都需要验证你的锁屏密码。

证书密码(如适用):如果证书文件是  `.p12`  或  `.pfx`  格式,安装时系统会要求你输入它的专用密码。

iOS(iPhone/iPad)安装步骤

1.    获取证书文件

        将证书文件通过邮件、网盘等方式发送到手机上,并下载保存到“文件”  App  中。如果是从网站下载证书链接,请在  Safari  浏览器中打开。

2.    安装描述文件

              打开“文件”  App,点击保存的证书文件,系统会提示“此网站正尝试下载一个配置描述文件。您要允许此操作吗?”,点击“允许”。

              进入手机的“设置”,你会在顶部看到“已下载的描述文件”选项,点击进入。

              点击该描述文件  ->  点击右上角的“安装”  ->  输入你的手机锁屏密码  ->  再次点击“安装”进行确认。

3.    启用  SSL  信任(这是最重要的一步!)

        iOS  出于安全考虑,手动安装的证书默认不会被  SSL  连接信任,需要你手动开启。

              前往“设置”  ->  “通用”  ->  “关于本机”  ->  找到并点击“证书信任设置”。

              在“针对根证书启用完全信任”列表中,找到你刚刚安装的国密根证书,并打开旁边的开关。

        *      系统会弹出一个风险提示,点击“继续”确认即可。

Android  安装步骤

1.    获取证书文件

        将证书文件通过微信、QQ  或网盘等方式发送到手机上,并记住它的存储位置,例如“下载”文件夹。

2.    安装证书

        不同品牌手机设置路径略有差异,但大致思路相同,请参考以下通用步骤:

              打开手机的“设置”。

              在搜索栏中搜索“加密与凭据”或“安全”,找到并点击进入。

              选择“从存储设备安装”或“安装证书”。

              在弹出的选择框中,如果你的证书是用于访问网站等通用目的,通常应选择“VPN  和应用”或“CA  证书”。

              系统可能会提示你设置或输入锁屏密码,完成身份验证。

              浏览并选择你之前保存的证书文件,然后为证书输入一个易识别的名称。

              点击“确定”完成安装。

常见问题与解决方法

      证书安装后为何仍提示“不安全”?

              iOS  用户最常忘记开启信任:请再次检查上文  iOS  步骤的第三步是否完成。

              证书链不完整:请确保你不仅安装了服务器证书,其签发的根证书和所有中间证书也已一并安装。

              Android  7.0  及更高版本的限制:在这个版本以上的  Android  系统中,App  可能默认不信任用户手动安装的  CA  证书。这会导致在  Chrome  浏览器中访问国密网站正常,但在某些  App  内却提示证书错误。解决方法需要  App  开发者进行适配,或在已取得  root  权限的设备上将证书安装为系统证书。

      国密证书能直接在手机上用普通浏览器访问吗?

        普通的浏览器如  Safari  和  Chrome  默认并不支持国密算法。要正常访问,你需要:

              下载并安装一个支持国密算法的专业浏览器,例如**360安全浏览器(国密版)、奇安信可信浏览器或密信浏览器。

              在这些专用浏览器中,再次按照上述步骤安装并信任国密根证书。

总结

总的来说,移动端配置国密证书的核心可以归纳为两步:

1.    手动安装证书文件。

2.    明确启用对它的信任(对  iOS  尤其重要)。

希望这份指南能帮助你顺利完成配置。如果用户的问题是需要在自己的应用中支持国密证书,请随时告诉我,我可以提供更深入的  SDK  集成或  GmSSL  库编译方法。