精华内容
下载资源
问答
  • 安卓系统BKS证书的使用一、...用浏览器打开网页时,会提示 未授信的网站。当使用自己制作的证书的时候,可以把证书放到项目里打包到APK中。二、keytool支持BKS的设置安卓通用使用的是BKS格式的证书。但JDK默认情况下...
    5fe941634e2b7d4087929e2a4feff6df.png

    安卓系统BKS证书的使用

    一、 概述

    手机默认内置了主流的根证书,一般在使用OkHttp时,使用本地根证书进行校验,项目不需要内置CA根证书。

    手机可以在设置停用某个根证书,这时与一些服务器通信,就会报SSL异常。用浏览器打开网页时,会提示 未授信的网站。

    当使用自己制作的证书的时候,可以把证书放到项目里打包到APK中。

    二、keytool支持BKS的设置

    安卓通用使用的是BKS格式的证书。但JDK默认情况下不支持BKS证书格式,如果要使用BKS需要进行以下操作:

    1. 下载 org.bouncycastle.jce.provider.BouncyCastleProvider 包,网址:https://www.bouncycastle.org
    2. 把下载的 bcprov-ext-jdk15to18-166.jar , bcprov-jdk15to18-166.jar 放到 %JAVA_HOME%/jre/lib/ext 下。(我也不知道为啥我下载有两个包)
    3. 修改%JAVA_HOME%/jre/lib/security/java.security文件
      我的配置是这样的:
    jdk.tls.disabledAlgorithms=security.provider.1=sun.security.provider.Sunsecurity.provider.2=sun.security.rsa.SunRsaSignsecurity.provider.3=sun.security.ec.SunECsecurity.provider.4=com.sun.net.ssl.internal.ssl.Providersecurity.provider.5=com.sun.crypto.provider.SunJCEsecurity.provider.6=sun.security.jgss.SunProvidersecurity.provider.7=com.sun.security.sasl.Providersecurity.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRIsecurity.provider.9=sun.security.smartcardio.SunPCSCsecurity.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider

    三、cer转换为bks格式

    1. 格式转换命令

    keytool -importcert -trustcacerts -keystore cNetty.bks -file cNetty.cer -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider# 按提示输入密钥库指令keytool -importcert -trustcacerts -keystore sNetty.bks -file sNetty.cer -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider# 按提示输入密钥库指令

    2. 导入信任证书库

    这时要把证书导入对方信任证书的仓库中,使用命令:

    keytool -import -alias securenettyclient_bks -file cNetty.cer -storepass 你的storepass密码 -keystore sNetty.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProviderkeytool -import -alias securenettyservice_bks -file sNetty.cer -storepass 你的storepass密码 -keystore cNetty.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

    3. 查看bks证书

    # 查看证书链keytool -list -rfc -keystore cNetty.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass 你的storepass证书# 验证BKSkeytool -list -v -storetype BKS -keystore sNetty.bks

    四、java socket使用bks证书的核心客户端代码

    以下代码客户端支持使用jks和bks两种格式、支持windows和android端使用,可以用在Netty框架:

    import lombok.extern.slf4j.Slf4j;import org.bouncycastle.jce.provider.BouncyCastleProvider;import javax.net.ssl.KeyManagerFactory;import javax.net.ssl.SSLContext;import javax.net.ssl.TrustManagerFactory;import java.io.IOException;import java.io.InputStream;import java.nio.file.Files;import java.nio.file.Paths;import java.security.*;import java.security.cert.CertificateException;/** * 加密通讯,获取SSLContext的方法 * @author Cade */@Slf4jpublic final class SecureNettySslContextFactory {private static final String PROTOCOL = "TLS";private static final String FILE_JKS ="jks";private static final String KEYSTORE_BKS ="BKS";private static final String KEYSTORE_JKS ="JKS";/** * 服务器安全上下文 */private static SSLContext SERVER_CONTEXT;/** * 客户端安全上下文 */    private static SSLContext CLIENT_CONTEXT;/** * * @param pkPath pkPath * @param caPath caPath * @param jksPass jksPass * @param storePass storePass * @return SSL上下文 */ public static SSLContext getClientContext(String pkPath,String caPath,String jksPass,String storePass){ if(CLIENT_CONTEXT!=null) { return CLIENT_CONTEXT; } final String osAndroid="android"; KeyManagerFactory kmf; TrustManagerFactory tf; KeyStore ks; KeyStore tks ; try { if(caPath.contains(FILE_JKS)) { ks = KeyStore.getInstance(KEYSTORE_JKS); tks = KeyStore.getInstance(KEYSTORE_JKS); }else{ Security.addProvider(new BouncyCastleProvider()); ks = KeyStore.getInstance(KEYSTORE_BKS); tks = KeyStore.getInstance(KEYSTORE_BKS); } // 如果是安卓系统,读取资源的方式有所不同 if (osAndroid.equals(Constants.OS)) { try (InputStream in = Constants.class.getResourceAsStream(pkPath)) { ks.load(in, jksPass.toCharArray()); } try(InputStream in = Constants.class.getResourceAsStream(caPath)){ tks.load(in, jksPass.toCharArray()); } } else { try (InputStream stream = Files.newInputStream(Paths.get(pkPath))) { ks.load(stream, jksPass.toCharArray()); } try (InputStream stream = Files.newInputStream(Paths.get(caPath))) { tks.load(stream, jksPass.toCharArray()); } } if(log.isInfoEnabled()) { log.info(TrustManagerFactory.getDefaultAlgorithm()); } kmf = KeyManagerFactory.getInstance("SunX509"); kmf.init(ks, storePass.toCharArray()); tf = TrustManagerFactory.getInstance("SunX509"); tf.init(tks); CLIENT_CONTEXT = SSLContext.getInstance(PROTOCOL); //初始化此上下文 //参数一:认证的密钥      参数二:对等信任认证  参数三:伪随机数生成器 。 由于单向认证,服务端不用验证客户端,所以第二个参数为null CLIENT_CONTEXT.init(kmf.getKeyManagers(), tf.getTrustManagers(), null); }catch (IOException | KeyStoreException | NoSuchAlgorithmException | UnrecoverableKeyException | CertificateException | KeyManagementException e){ if(log.isErrorEnabled()){ log.error(e.toString());} } return CLIENT_CONTEXT; }}

    代码里Constants类是自定义的常量类。

    五、OKHttp使用证书

    bks一般可以放在assets下。

    public class MyOkhttpClient {    private static MyOkhttpClient singleton;    public static OkHttpClient getInstance() {        if (singleton == null) {            synchronized (CBOkhttpClient.class) {                if (singleton == null) {                    OkHttpClient.Builder builder = new OkHttpClient().newBuilder();                    builder.connectTimeout(50000, TimeUnit.MILLISECONDS);                    builder.writeTimeout(50000, TimeUnit.MILLISECONDS);                    builder.readTimeout(50000, TimeUnit.MILLISECONDS);                    try {                        SSLContext sslContext = SSLContext.getInstance("TLS");                        TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());                        KeyStore trustStore = KeyStore.getInstance("BKS");                        InputStream ksinstream = CBFramework.getApplication().getResources().openRawResource(R.raw.cbframework_trustcerts);                        trustStore.load(ksinstream, "".toCharArray());                        ksinstream.close();                        trustManagerFactory.init(trustStore);                        sslContext.init(null, trustManagerFactory.getTrustManagers(), new SecureRandom());                        builder.sslSocketFactory(sslContext.getSocketFactory(), new X509TrustManager() {                            @Override                            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {                            }                            @Override                            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {                            }                            @Override                            public X509Certificate[] getAcceptedIssuers() {                                return new X509Certificate[0];                            }                        });                    } catch (Exception e) {                        Log.e(e);                    }                    singleton = builder.build();                }            }        }        return singleton;    }}
    展开全文
  • 是因为request请求中缺少设置UserAgent属性。User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、...

    是因为request请求中缺少设置UserAgent属性。

    User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

    一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA 可以绕过检测。

    某些网站可能为了防止抓包策略故设置了这一门槛,我们需要将请求包装,模拟成浏览器或其他模拟请求软件进行访问,其中具体的值因操作系统,浏览器以及版本等不同会有变化,所以不同用户的值是不一样的,可以通过百度自行获得。

    展开全文
  • 校园网用户:因SSL 2.0/3.0、...一些低版本浏览器因为默认设置未开启TLS 1.2,会导致无法访问学校主页、招生网等部分网站。为解决上述问题,建议使用谷歌、火狐等浏览器,如果使用IE、360等浏览器,请参照以下方法...

    7a47fdd16dfbbe18f0986712e3561823.gif

    校园网用户:

    SSL 2.0/3.0、TLS 1.0安全传输协议存在安全漏洞,为符合https类网站信息安全政策要求,学校安全设备禁用了SSL 2.0/3.0以及TLS 1.0协议,且仅支持TLS 1.2协议。一些低版本浏览器因为默认设置未开启TLS 1.2,会导致无法访问学校主页、招生网等部分网站。为解决上述问题,建议使用谷歌、火狐等浏览器,如果使用IE、360等浏览器,请参照以下方法进行设置。

    • 第一步•

    打开IE浏览器,点击右上角的“工具”按钮

    48c4af6b5bf3545ed623c60de3a50fc5.png

    • 第二步•

    点击Internet选项

    8dd364aa569b544abbccab19013dcac4.png

    • 第三步 •

    在弹出的Internet选项窗口中选择高级选项卡

    23f66f619d79fdfe9b1aca2235fd0f10.png

    • 第四步 •

    往下滚动到安全部分

    选中使用TLS 1.2后点击确认按钮

    9760548cddaabed2b4b8e7f27868c7ad.png

    • 第五步 •

    关闭浏览器

    然后重新打开IE或360浏览器就可以了

    注意:如果您在“安全”设置项目中找不到 “使用TLS 1.2”选项,说明您的操作系统或浏览器不满足最低要求,请使用谷歌、火狐等浏览器或者选择升级操作系统。

    4b5926060d9a0ca8ffabe46516ed9f70.gif

    80万+!直播精彩回顾!2小时带你走进青岛农业大学!

    青岛农业大学2020年招生宣传片《发现》震撼首发!

    拿双学位!青岛农大巴瑟斯未来农业科技学院首次招生!

    ▲“收割”奖学金、玩转短视频、建模图书馆……青农这个小伙不一般!

    来源:青岛农业大学网络管理中心

    编辑:郭淑慧

    责任编辑:周维维  姜妍 

    137989e802bf217c3f078082e57847e1.gif

    3473e870fe838a796ec7b6f1d30b6d72.gif点分享a8d80414b3f530a21d2a4910beb3faa3.gif点点赞6d0c383fe1d5164b02e0fa3cfdb7d2d1.gif点在看
    展开全文
  • https SSL TLS

    千次阅读 2009-12-11 13:32:00
    https使用SSL或TLS来保证网络层传输的安全。...如IE 工具-Internet选项-高级-设置-安全 使用SSL3.0 使用TLS1.0FireFox 工具-选项-高级-加密 默认选中SSL3.0和TLS1.0 具体连接过程使用何种加密、消息认证、密钥协商

     

    https使用SSL或TLS来保证网络层传输的安全。

    SSL目前的版本是3.0。 TLS是在SSL的基础上演化而来的。

    一般浏览器同时支持这两种方式。如

    IE        工具-Internet选项-高级-设置-安全 使用SSL3.0  使用TLS1.0

    FireFox 工具-选项-高级-加密 默认选中SSL3.0和TLS1.0

     

    具体连接过程使用何种加密、消息认证、密钥协商方式,应该是依赖于浏览器或服务器的实现。

    在IE浏览器使用SSL3.0时,在浏览器与网站进行密钥协商阶段,只是简单的用服务器证书的公钥加密了主密钥,进行密钥协商。

    在这种情况下,如果拿到服务器证书的私钥,就能通过wireshark解析https的通信过程。

    参见:http://wiki.wireshark.org/SSL

     

    使用TLS时,很可能是通过DH进行密钥协商。

     

    from Wiki:  http://en.wikipedia.org/wiki/HTTP_Secure

    Hypertext Transfer Protocol Secure (HTTPS ) is a combination of the Hypertext Transfer Protocol with the SSL/TLS protocol to provide encryption and secure identification of the server.

     

    HTTP operates at the highest layer of the OSI Model , the Application layer; but the security protocol operates at a lower sublayer, encrypting an HTTP message prior to transmission and decrypting a message upon arrival. Strictly speaking, HTTPS is not a separate protocol, but refers to use of ordinary HTTP over an encrypted Secure Sockets Layer (SSL) or Transport Layer Security (TLS) connection.

    展开全文
  • 您可以从Let's Encrypt获取经过域验证的证书,而无需设置传输层安全性(TLS)。HTTP服务器和web浏览器已经广泛采用HTTP/2。从Java 9和Spring Boot 2/Spring 5开始,您可以轻松地让web应用程序使用安全的HTTPS/TLS...
  • SSL/TLS基础知识

    2021-02-09 15:15:49
    安全考虑:CA机构不能保证一个网站永远是合法的,因此它需要定期检查网站; CA证书都非常贵,签发证书的机构通过设置期限来收费,是一种商业途径; 吊销,会给CA带来流量压力: 当网站的私钥丢失时,网站应该向...
  • TLS通道是一个通过 (传输层安全性)连接实现接口的库。 它将所有加密操作委托给标准Java TLS实现: ; 有效地将其隐藏在易于使用的流API后面,从而可以以最小的复杂性来证券化JVM应用程序。 换句话说,一个简单的库...
  • FTP经过广泛测试的FTP(文件传输协议)实现,可实现最佳互操作性,并通过安全的SSL / TLS连接支持FTP。 SFTP支持强密码,公钥和两因素身份验证。从现有的OpenSSH配置中读取设置。 WebDAV具有对ownCloud,box.com,...
  • 这可能是因为该站点使用过期的或不安全的TLS安全设置。如果这种情况持续发生,请与网站的所有者联系 如图: 问题分析: 使用了win10默认的Edge浏览器,不能打开pgAdmin4 解决方法: 更换默认浏览器为...
  • 对应会给出解决方法,前面有尝试重置Internet Explorer设置,清空cookie历史记录,cmd--ipconfig/flushdns 清空dns缓存无果,小编遇到是因为IE浏览器某个协议没开启,打开Internet选项---高级 安全下启用TLS SSL协议...
  • 1,有说是阿里云安全规则配置哪里没设置![图片说明](https://img-ask.csdn.net/upload/201903/14/1552556313_933513.png)![图片说明](https://img-ask.csdn.net/upload/201903/14/1552556324_255015.png)!...
  • WEB/系统安全

    2019-09-21 09:52:35
    安全性相关的HTTP头部设置: Strict-Transport-Security:强制使用安全连接(SSL/TLS之上的HTTPS)来连接到服务器。 X-Frame-Options:提供对于“点击劫持”的保护。 X-XSS-Protection:开启大多现代浏览器内建的...
  • HTTP严格传输安全(HSTS)是一个新技术,强制浏览器使用SSL/TLS(HTTPS)协议来访问应用。当应用在HTTP的响应头中设置HSTS标识,如果浏览器支持HSTS标识,那么本次通讯完全是基于HTTPS的。下面是简单的流程: 1、...
  • 安装nginx 在控制台 输入 sudo apt-get install nginx 等待安装成功之后。可以打开浏览器。...  SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信...
  • 设置环境变量NODE_TLS_REJECT_UNAUTHORIZED=0 即”不拒绝未认证的证书” 但是直接修改系统环境变量比较危险,因为会影响到所有nodejs的程序;比较稳妥的办法是脚本中调用process.env[“NODE_TLS_REJECT_UNA
  • 2.2.0 TLS-[改进] Bouncy Castle优化:根据协商的密码,下载速度可能会提高,并且内存...以减少使用TLS时的上下文切换,将每个TLS消息的读取减半--[改进]删除了引发浏览器行为的可选错误抛出-常规-[新功能]新的计时API
  • PHPMailer出现SMTP connect() failed.

    千次阅读 2018-12-02 10:57:00
    Port分别设置为ssl与465或者tls与587,否则某些浏览器不接受不安全的链接,导致$mailer->send()时非常慢,从而导致SMTP connect() failed(我最初就是没有设置$mailer->SMTPSecure和$mailer->Port,然后在...
  • //添加后可以访问 但浏览器依然会提示https不安全 //request axios 请求写下面 ... 方案 2 添加 rejectUnauthorized: false request请求时设置: let request = require( 'request' ).defaults({...
  • gmail上不去的解决方法(原)

    千次阅读 2008-01-19 22:38:37
    由于该死的GFW,gmail邮箱打不开了,网上溜达找到了一个简单的方法可以用邮箱哈,那就是:浏览器设置中启用 TLS1.0 就OK了. 至于其它的方法比如用代理什么的肯定也可以的,不过个人觉得麻烦且不安全哈。 补充:...
  • TLS(或传输层安全性)及其前身SSL(代表安全套接字层)是用于将正常流量包装在受保护的加密包装器中的Web协议。 使用此技术,服务器可以在服务器和客户端之间安全地发送流量,而不必担心消息会被外部方拦截和读取...
  • FileZilla真是奇葩

    2018-02-02 17:22:00
    状态:不安全的服务器,不支持FTP over TLS。 状态:服务器不支持非ASCII字符。 尝试解决: 修改文件——站点管理器——传输设置——被动 结果:用了浏览器连接ftp地址,把周报拖拽进去。 的确是对ftp原来不是...
  • 为服务器配置 ICA 浏览器设置 127 保护服务器场 128 1.8.2. Microsoft 安全模板支持 128 保护对服务器的访问 128 保护 XenApp Advanced Configuration 128 使用 NTFS 分区 128 安装和配置简单网络管理协议 (SNMP) ...
  • 使用TLS/SSL标准安全套接字层通讯协议(1024位RSA加密),支持包括 SSL SMTP, SSL POP3, SSL IMAP4 安全通讯服务,防止网络侦听,使得通信更安全。 多语言Webmail(目前支持简体、繁体、英文三种语言,添加其它语言...
  • ServU_v11105

    2011-12-07 13:02:14
    所有这些安全设置是为每个用户和组定制。 贵公司是否需要为数百个用户的FTP服务器,或者你需要一种方法来与一些朋友共享文件,“SERV – U”的文件共享解决方案,可以很长一段时间来与您的需求增长。 “SERV – U...
  • 这些敏感信息通过https(SSL / TLS)请求发送到我们的服务器,以确保在运输过程中信息从任何第三方/实体的安全。但是,我们不会收集任何与支付有关的信息,如信用卡的详细信息等。当用户卸载扩展,他/她保存的数据将...
  • 当您将UniqKey浏览器扩展程序与智能设备连接时,您不必担心数据泄露和其他风险因素,这可能会危害公司的网络安全。 UniqKey还可以帮助您避免因违反欧盟的GDPR法规(通用数据保护法规)而遭受财务影响。 主要功能:...
  • CuteFTP9简易汉化版

    2014-04-11 12:31:30
    SSL会话Choices-When设置SSL连接,一种上传软件允许您选择三种常见的SSL实现,包括TLS(AUTH TLS)*,SSL隐* *(直接连接在端口990)和SSL显式* *(身份验证SSL)模式。大多数FTP服务器支持至少一种,而一些(比如Globalscape ...
  • ·使用TLS/SSL标准安全套接字层通讯协议(1024位RSA加密),支持包括 SSL SMTP, SSL POP3, SSL IMAP4 安全通讯服务,防止网络侦听,使得通信更安全。 ·提供完善的日程管理功能,让您可以和系统内其他用户进行高效的...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

浏览器tls安全设置