服务器如何更新ssl证书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器如何更新ssl证书相关的知识,希望对你有一定的参考价值。

服务器要随时更新SSL证书,现在市面上提供的SSL证书都是有一定期限的,一般情况下是13个月,一旦超过该期限的话该SSL证书就彻底失效,不会在发挥保护网站信息的作用了。

SSL证书过期怎么办:

1、继续续费

可以继续找原来的CA机构重新签发一张相同的ssl证书。这里的流程就比较简单,由于你在第一次申请ssl证书的时候,相关CA机构已经对你的网站域名或企业信息审核过,所以,只需根据你上一张证书的信息,重新签发一张有效的ssl证书即可,基本当天就能完成。

2、更换SSL证书

在可信的CA机构选择自己满意的SSL证书,按照申请流程要求操作,验证域名、组织者信息,验证信息通过后,拿到SSL证书替换之前过期的SSL证书,重启网站服务器即可。

更新网站SSL证书方法

1、域名进行认证,可以选择邮件方式认证、DNS解析方式、URL地址认证这三种。

2、若是以上SSL证书过期的情况需要更新的话,下载SSL证书文件替换过期的SSL文件,并且重启服务器环境生效。

参考技术A

Gworg提交审核后更新。

服务器更新SSL证书方法:

    Gworg请求更新拿到新的SSL证书。 

    使用对应服务器环境的SSL证书。

    根据Gworg技术文档替换证书(更新证书与安装步骤相同)。

其它解决办法:拿到SSL证书替换之前的服务器证书文件,重启服务器环境就可以了。

如何在我的 Android 应用程序中更新 SSL 证书?

【中文标题】如何在我的 Android 应用程序中更新 SSL 证书?【英文标题】:How do I update the SSL cert in my android apps? 【发布时间】:2014-06-13 03:25:39 【问题描述】:

最近我在从事实施 SSL 的项目。

SSL 证书每年过期一次。在我更新服务器上的证书后,它会在 android 中引发异常。

06-13 11:20:27.709: D/allenj(30076): javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: 找不到证书路径的信任锚。

查看项目代码后,我看到有一个bks文件,那么,是否意味着我必须每年更新一次bks文件,并且我必须将应用程序重新上传到google play。

问题是应对SSL证书更新的标准方法是什么?感谢您的帮助。

代码提取

nnable Register_runnable = new Runnable()
        @Override
        public void run() 
            EditText emailText = (EditText) findViewById(R.id.editText1regist);

            EditText pwText = (EditText) findViewById(R.id.editText2registpw);

            String end = "\r\n";
            String twoHyphens = "--";
            String boundary = "*****";
            try 
                KeyStore keyStore = KeyStore.getInstance("BKS");
                InputStream in =  
                getResources().openRawResource(R.raw.ballooncardbks);
                keyStore.load(in, "".toCharArray());
                TrustManagerFactory tmf = 
                TrustManagerFactory.getInstance("X509");
                tmf.init(keyStore);

                SSLContext context = SSLContext.getInstance("TLS");
                context.init(null, tmf.getTrustManagers(), null);

                String actionUrl = "https://app.ballooncard.com/api/client/register/format/json";
                URL url = new URL(actionUrl);
                HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
             //   con.setDoInput(true);
                con.setDoOutput(true);
                con.setUseCaches(false);
                con.setRequestMethod("POST");

                con.setSSLSocketFactory(context.getSocketFactory());

                con.setRequestProperty("Connection", "Keep-Alive");
                con.setRequestProperty("Charset", "UTF-8");
                con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);

【问题讨论】:

更新证书后可以防止上述异常吗?谢谢 证书固定是一个很好的安全控制。 你接受放弃它的建议之前,你应该和一些了解网络安全模型和 PKIX 的安全人员交谈。如果我是您的安全人员,我会拒绝该请求并告诉您更新客户端中的固定证书。 而且您不需要将证书存储在 KeyStore 中(就像它一样隐藏起来)。您可以将其以纯文本形式存储为文件资源,甚至可以将其作为字符串硬编码到您的应用程序中。例如,请参阅Options for Programatically Adding Certificates to Java KeyStore。 顺便说一句....这返回一个 SSL 上下文(而不是 TLS 独占上下文):SSLContext.getInstance("TLS")。也应该对其进行强化——协议强化和密码套件强化。例如,将启用 SSLv3,禁用 TLS 1.1 和 1.2。例如,请参阅Which Cipher Suites to enable for SSL Socket?。 【参考方案1】:

看起来该应用正在使用“证书固定”,这意味着已将证书硬编码到应用中,并且已指示该应用仅接受该证书而不接受其他证书。

这增加了安全性,但代价是您需要在证书过期时(最好是在此之前)更新您的应用程序。您可以按照我在此处创建的帖子中的说明进行操作:

https://***.com/a/24007536/276949

从您的证书生成一个新的.bks 文件。完成此操作后,覆盖旧的 .bks 文件,您的应用应该可以通过 SSL 成功连接。

【讨论】:

是的,您可以使用此方法创建“自签名”证书,这意味着您无需付费。但是,您也可以从startssl.com免费获得“官方”证书 使用 StartSSL 免费证书,您不必每年重新发布一次。只需更新服务器上的证书就足够了。但是,在这种情况下,请从您的应用中删除 .bks 自定义证书代码。 真的没有区别。 StartSSL 免费提供它们,但如果您想撤销它,则收费(他们颠倒了标准的商业模式)。所有证书都会过期,因此您最终总是需要更新您的证书服务器端。只有在硬编码以接受特定证书而不接受其他证书时,您才需要更新应用程序。如果证书是“官方”证书,并且您没有将其硬编码到您的应用程序中,那么该应用程序仍会识别它。 是的。有超过 30 家公司可以颁发 SSL 证书。攻击者可以破解其中一个并为您的域创建另一个有效的 SSL 证书(这是证书固定地址)的风险很小。但是,如果您对此不担心(大多数人不担心 Google、Microsoft 等大公司),那么请继续删除它。 不,不应该有任何你需要接触服务器端的代码。

以上是关于服务器如何更新ssl证书的主要内容,如果未能解决你的问题,请参考以下文章

如果从服务器维护者处更新 SSL/TLS CA 证书,它将如何在我的设备中更新?

使用 certbot 自动更新 ssl 证书

服务器更换ssl证书

如何在 Windows 上更新 SSL 证书?

更新 Apache SSL 证书

如何创建ssl证书 nginx