首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何找到我的服务器的公钥信息,以便在OkHttp中进行证书锁定?

要找到服务器的公钥信息,以便在OkHttp中进行证书锁定,可以按照以下步骤进行:

  1. 获取服务器证书:首先需要从服务器获取证书文件。可以使用命令行工具(如OpenSSL)或浏览器来访问服务器,并导出证书。具体方法可以参考服务器操作系统和Web服务器软件的相关文档。
  2. 提取公钥信息:一旦获取了服务器证书文件(通常是以.crt或.pem为后缀的文件),就可以通过以下步骤提取公钥信息:
    • 如果证书文件是PEM格式,可以使用命令行工具(如OpenSSL)执行以下命令:openssl x509 -in server.crt -pubkey -noout > public.pem
    • 如果证书文件是DER格式,可以使用Java代码来提取公钥信息。示例代码如下:
    • 如果证书文件是DER格式,可以使用Java代码来提取公钥信息。示例代码如下:
  • 在OkHttp中进行证书锁定:一旦提取了服务器的公钥信息,可以将其用于OkHttp的证书锁定功能,以确保与服务器建立安全连接。示例代码如下:
  • 在OkHttp中进行证书锁定:一旦提取了服务器的公钥信息,可以将其用于OkHttp的证书锁定功能,以确保与服务器建立安全连接。示例代码如下:

以上是关于如何找到服务器的公钥信息,并在OkHttp中进行证书锁定的步骤和示例代码。在具体实践中,需要根据服务器和应用的具体情况进行相应的调整和配置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

移动端防抓包实践

证书固定的一般做法是,将公钥证书(.crt 或者 .cer 等格式)内置到 App 中,然后创建 TrustManager 时将公钥证书加进去。...第二步,服务器发回相应,charles获取到服务器的CA证书,用根证书(这里的根证书是CA认证中心给自己颁发的证书)公钥进行解密,验证服务器数据签名,获取到服务器CA证书公钥。...第六步,charles截获服务器发送的密文,用对称密钥解开,再用自己伪造证书的私钥加密传给客户端。 第七步,客户端拿到加密信息后,用公钥解开,验证HASH。...4.3 证书校验(单向认证) 下载服务器端公钥证书 为了防止上面方案可能导致的“中间人攻击”,可以下载服务器端公钥证书,然后将公钥证书编译到Android应用中一般在assets文件夹保存,由应用在交互过程中去验证证书的合法性...官方比较推荐的一种校验方式 原理是在客户端中预先设置好证书信息,握手时与服务端返回的证书进行比较,以确保证书的真实性和有效性。

1.9K10

【胖虎的逆向之路】Android自制Https证书实现双向认证

对称加密 速度高,可加密内容较大,用来加密会话过程中的消息 公钥加密 加密速度较慢,但能提供更好的身份认证技术,用来加密对称加密的密钥 1.4 SSL 功能 1.4.1 客户对服务器的身份认证 SSL...服务器允许客户的浏览器使用标准的公钥加密技术和一些可靠的认证中心(CA)的证书,来确认服务器的合法性~ 1.4.2 服务器对客户的身份认证 也可通过公钥技术和证书进行认证,也可通过用户名,password...其内容包含:电子签证机关的信息、公钥用户信息、公钥、签名和有效期。...这里的公钥服务端的公钥,这里的签名是指:用hash散列函数计算公开的明文信息的信息摘要,然后采用 CA 的私钥对信息摘要进行加密,加密完的密文就是签名。...即:证书 = 公钥 + 签名 +申请者和颁发者的信息。

1.1K21
  • Android安卓进阶之——一文带你了解抓包和反抓包

    进行地址过滤,找到我们想看的网络数据。...对比 未使用 和 使用 抓包的报错信息,发现第一个 sha256 都是来自于知乎的公钥,但两个的 sha256 是不一样的。...这是两个公钥在不同 「中间证书认证」-「中间证书认证」……「根证书认证」这种认证体系下的一个hash串。...warning: 配置信任某个具体证书一定要与服务器开发或运维沟通好,因为如果服务器进行了证书替换而App没有更新到最新证书,App的请求将会失效。...还有什么骚操作 上面讲到我们配置到工程代码里的是 网站的公钥(任何人都可以随意下载) 根据HTTPS的原理,公钥和私钥的原理,其实完全可以在代码里配置上开发者的 charles 公钥(只针对某台具体的笔记本

    2.9K40

    深入OKHttp之TLS

    今天我们来看一下 OKHttp 中是怎么处理 HTTP 的 TLS 安全连接的。...: 创建 TLS 套接字 配置 Socket 的加密算法,TLS版本和扩展 强行进行一次 TLS 握手 建立 SSL 会话 校验证书 证书锁定校验 如果成功连接,保存握手和 ALPN 的协议 创建 TLS...如果在java.security中设置了相应的属性,则验证证书链。 校验 接下来会获取 SSLSession 对象和握手信息 handshake。来做一些校验。 if (!...但是CA签发证书都存在有效期问题,所以缺点是在证书续期后需要将证书重新内置到客户端中。 除了这种方式,还有一种公钥锁定的方式。...提取证书中的公钥内置到客户端,通过与服务器端对比公钥值来验证合法性,并且在证书续期后,公钥也可以保持不变,避免了证书锁定的过期问题。

    2.4K10

    一文读懂Https的安全性原理、数字证书、单项认证、双项认证等

    即客户端使用对称加密生成密钥(key)对传输数据进行加密,然后使用非对称加密的公钥再对key进行加密。...5、数字证书 我们上面提到了HTTPS的工作原理,通过对称加密和非对称加密实现数据的安全传输。我们也知道非对称加密过程需要用到公钥进行加密。 那么公钥从何而来?其实公钥就被包含在数字证书中。...数字证书通常来说是由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,证书中包含了一个密钥对(公钥和私钥)和所有者识别信息。数字证书被放到服务端,具有服务器身份验证和数据传输加密功能。...7.1 双向认证流程 接下来我们来了解下双向认证的流程,以加深对双向认证的理解: a. 客户端发送一个连接请求给服务器。 b. 服务器将自己的证书,以及同证书相关的信息发送给客户端。 c....服务器从客户发送过来的密码方案中,选择一种加密程度最高的密码方案,用客户的公钥加过密后通知客户端。 h. 客户端针对这个密码方案,选择一个通话密钥,接着用服务器的公钥加过密后发送给服务器。 i.

    2.5K20

    谈谈HTTPS安全认证,抓包与反抓包策略

    CA证书:CA证书CA证书内含服务端公钥与私钥,使用hash散列函数计算明文信息的信息摘要,然后采用CA证书内含的私钥对信息摘要进行加密最终生成签名。...即:证书 = 公钥 + 签名 +申请者和颁发者的信息。客户端中因为在操作系统中就预置了CA的公钥,所以支持解密签名。...2、服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,同时也返回服务器端的证书,即公钥证书 3、客户端使用服务端返回的信息验证服务器的合法性,包括: 证书是否过期发行服务器证书的CA是否可靠返回的公钥是否能正确解开返回证书中的数字签名服务器证书上的域名是否和服务器的实际域名相匹验证通过后...2.公钥锁定 HTTP公钥锁定是HTTPS网站防止攻击者CA机构错误签发的证书进行中间人攻击的一种安全机制,用于预防CA遭受入侵或其他会造成CA签发未授权证书的情况。...采用公钥锁定时,网站会提供已授权公钥的哈希列表,指示客户端在后续通讯中只接受列表上的公钥。提取证书中的公钥并内置到客户端中,通过与服务器对比公钥值来验证连接的正确性。

    3.1K20

    移动安全入门之常见抓包问题二

    ,先使用内置的证书信息校验一下服务器证书是否合法,如果不合法,直接断开。...认证方式:证书锁定 证书锁定(SSL/TLS Pinning)顾名思义,将服务器提供的SSL/TLS证书内置到移动端开发的APP客户端中,当客户端发起请求时,通过比对内置的证书和服务器端证书的内容,以确定这个连接的合法性...证书锁定需要把服务器的公钥证书(.crt 或者 .cer 等格式)提前下载并内置到App客户端中,创建TrustManager 时将公钥证书加进去。当请求发起时,通过比对证书内容来确定连接的合法性。...认证方式:公钥锁定 公钥锁定则需提取证书中的公钥内置到客户端中,通过比对公钥值来验证连接的合法性,由于证书更换依然可以保证公钥一致,所以公钥锁定不存在客户端频繁更换证书的问题。...指 Client 端内置 Server 端真正的公钥证书。在 HTTPS 请求时,Server 端发给客户端的公钥证书必须与 Client 端内置的公钥证书一致,请求才会成功。

    1.4K20

    Android 网络优化-DNS优化

    3、 OKHttp 接入 HTTPDNS 既然了解了 HTTPDNS 的重要性,接下来看看如何在 OkHttp 中,集成 HTTPDNS。...OkHttp 是一个处理网络请求的开源项目,是 Android 端最火热的轻量级网络框架。在 OkHttp 中,默认是使用系统的 DNS 服务 InetAddress 进行域名解析。...服务端根据请求,选择合适的算法,下发公钥证书和随机数。 客户端对服务端证书,进行校验,并发送随机数信息,该信息使用公钥加密。 服务端经过私钥获取随机数信息。...双方根据以上交互的信息,生成 Session Ticket,用做该链接后续数据传输的加密密钥。 在这个流程中,客户端须要验证服务器下发的证书。...HTTPS 下的问题也获得解决,证书依然使用域名进行校验。 OkHttp 既然暴露出 dns 接口,咱们就尽可能使用它。

    3K30

    也许,这样理解HTTPS更容易

    如何对协商过程进行加密 新问题来了,如何对协商过程进行加密?密码学领域中,有一种称为“非对称加密”的加密算法,特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。...所以,我们不能直接将服务器的公钥传递给客户端,而是第三方机构使用它的私钥对我们的公钥进行加密后,再传给客户端。客户端再使用第三方机构的公钥进行解密。...意思是,客户端在拿到证书后,自己就有能力分辨证书是否被篡改了。如何才能有这个能力呢? 我们从现实中找灵感。...其实呢,现实中,浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。...其实,问题应该是CA如何颁发给我们的网站管理员,而我们的管理员又如何将这个数字证书放到我们的服务器上。 我们如何向CA申请呢?每个CA机构都大同小异,我在网上找了一个: ?

    38730

    也许,这样理解HTTPS更容易

    如何对协商过程进行加密 新问题来了,如何对协商过程进行加密?密码学领域中,有一种称为“非对称加密”的加密算法,特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。...所以,我们不能直接将服务器的公钥传递给客户端,而是第三方机构使用它的私钥对我们的公钥进行加密后,再传给客户端。客户端再使用第三方机构的公钥进行解密。...意思是,客户端在拿到证书后,自己就有能力分辨证书是否被篡改了。如何才能有这个能力呢? 我们从现实中找灵感。...其实呢,现实中,浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。...其实,问题应该是CA如何颁发给我们的网站管理员,而我们的管理员又如何将这个数字证书放到我们的服务器上。 我们如何向CA申请呢?每个CA机构都大同小异,我在网上找了一个: ?

    53611

    原来HTTPS还可以这样去理解

    如何对协商过程进行加密 新问题来了,如何对协商过程进行加密?密码学领域中,有一种称为“非对称加密”的加密算法,特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。...所以,我们不能直接将服务器的公钥传递给客户端,而是第三方机构使用它的私钥对我们的公钥进行加密后,再传给客户端。客户端再使用第三方机构的公钥进行解密。...意思是,客户端在拿到证书后,自己就有能力分辨证书是否被篡改了。如何才能有这个能力呢? 我们从现实中找灵感。...其实呢,现实中,浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。...其实,问题应该是CA如何颁发给我们的网站管理员,而我们的管理员又如何将这个数字证书放到我们的服务器上。 我们如何向CA申请呢?每个CA机构都大同小异,我在网上找了一个: ?

    42510

    轻松理解https,So easy!

    如何对协商过程进行加密 新问题来了,如何对协商过程进行加密?密码学领域中,有一种称为“非对称加密”的加密算法,特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。...所以,我们不能直接将服务器的公钥传递给客户端,而是第三方机构使用它的私钥对我们的公钥进行加密后,再传给客户端。客户端再使用第三方机构的公钥进行解密。...意思是,客户端在拿到证书后,自己就有能力分辨证书是否被篡改了。如何才能有这个能力呢? 我们从现实中找灵感。...其实呢,现实中,浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。...其实,问题应该是CA如何颁发给我们的网站管理员,而我们的管理员又如何将这个数字证书放到我们的服务器上。 我们如何向CA申请呢?

    45830

    Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成

    三、 OKHttp 接入 HTTPDNS 既然了解了 HTTPDNS 的重要性,接下来看看如何在 OkHttp 中,集成 HTTPDNS。...OkHttp 是一个处理网络请求的开源项目,是 Android 端最火热的轻量级网络框架。在 OkHttp 中,默认是使用系统的 DNS 服务 InetAddress 进行域名解析。...服务端根据请求,选择合适的算法,下发公钥证书和随机数。 客户端对服务端证书,进行校验,并发送随机数信息,该信息使用公钥加密。 服务端通过私钥获取随机数信息。...双方根据以上交互的信息,生成 Session Ticket,用作该连接后续数据传输的加密密钥。 在这个流程中,客户端需要验证服务器下发的证书。...还是用域名进行访问,只是底层 DNS 解析换成了 HTTPDNS,以确保解析的 IP 地址符合预期。 2. HTTPS 下的问题也得到解决,证书依然使用域名进行校验。

    4K10

    漫谈威胁建模下的安全通信

    如何解决A的困惑呢?在上述场景中,邮件就是我们所说的消息。在讲解机密性的时候,我们知道公钥是公开的,而私钥则是独有,隐蔽的,因此私钥是可以代表持有者的身份。...证书主要包括5个部分: 签发者信息CA 使用者信息B B的密钥信息 B的公钥 数字签名 其中数字签名是由CA机构的私钥对证书上的信息(包括公钥)进行加密生成的。...首先说一下,证书是如何解决上述问题的,以数字签名那一节中的场景为例: 1.B手头有点紧,急需用钱,首先通过邮件将自己在CA机构申请的证书发给A。...2.A收到邮件后,看到证书签发者的信息是CA,于是拿着证书找CA机构,CA机构用自己的公钥对数字签名进行解密,并比对使用者信息,密钥信息等内容。如果一致,说明这是给B签发的证书,公钥是B的。...反向校验 在上图中,C找到B生成了证书,之前我们知道要验证证书中公钥的合法性,需要去找证书的签发者进行解密校验,同样道理,证书链也是这个流程,只不过是找了多级,C找B,B找A,A找CA。 ?

    92220

    也许这样理解 HTTPS 更容易

    如何对协商过程进行加密 新问题来了,如何对协商过程进行加密?密码学领域中,有一种称为“非对称加密”的加密算法,特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。...所以,我们不能直接将服务器的公钥传递给客户端,而是第三方机构使用它的私钥对我们的公钥进行加密后,再传给客户端。客户端再使用第三方机构的公钥进行解密。...意思是,客户端在拿到证书后,自己就有能力分辨证书是否被篡改了。如何才能有这个能力呢? 我们从现实中找灵感。...其实呢,现实中,浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。...其实,问题应该是CA如何颁发给我们的网站管理员,而我们的管理员又如何将这个数字证书放到我们的服务器上。 我们如何向CA申请呢?每个CA机构都大同小异,我在网上找了一个: ?

    733130

    轻松理解https,So easy!

    如何对协商过程进行加密 新问题来了,如何对协商过程进行加密?密码学领域中,有一种称为“非对称加密”的加密算法,特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。...所以,我们不能直接将服务器的公钥传递给客户端,而是第三方机构使用它的私钥对我们的公钥进行加密后,再传给客户端。客户端再使用第三方机构的公钥进行解密。...意思是,客户端在拿到证书后,自己就有能力分辨证书是否被篡改了。如何才能有这个能力呢? 我们从现实中找灵感。...其实呢,现实中,浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。...其实,问题应该是CA如何颁发给我们的网站管理员,而我们的管理员又如何将这个数字证书放到我们的服务器上。 我们如何向CA申请呢?每个CA机构都大同小异,我在网上找了一个: ?

    34510

    也许,这样理解HTTPS更容易

    所以,我们不能直接将服务器的公钥传递给客户端,而是第三方机构使用它的私钥对我们的公钥进行加密后,再传给客户端。客户端再使用第三方机构的公钥进行解密。   ...意思是,客户端在拿到证书后,自己就有能力分辨证书是否被篡改了。如何才能有这个能力呢?   我们从现实中找灵感。...当客户端拿到证书后,开始对证书中的内容进行验证,如果客户端计算出来的证书编号与证书中的证书编号相同,则验证通过: ?   但是第三方机构的公钥怎么跑到了客户端的机器中呢?世界上这么多机器。   ...其实呢,现实中,浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。...其实,问题应该是CA如何颁发给我们的网站管理员,而我们的管理员又如何将这个数字证书放到我们的服务器上。   我们如何向CA申请呢?每个CA机构都大同小异,我在网上找了一个: ?

    67050

    你必须懂的 https

    如何对协商过程进行加密 新问题来了,如何对协商过程进行加密?密码学领域中,有一种称为“非对称加密”的加密算法,特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。...所以,我们不能直接将服务器的公钥传递给客户端,而是第三方机构使用它的私钥对我们的公钥进行加密后,再传给客户端。客户端再使用第三方机构的公钥进行解密。...意思是,客户端在拿到证书后,自己就有能力分辨证书是否被篡改了。如何才能有这个能力呢? 我们从现实中找灵感。...其实呢,现实中,浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。...其实,问题应该是CA如何颁发给我们的网站管理员,而我们的管理员又如何将这个数字证书放到我们的服务器上。 我们如何向CA申请呢?每个CA机构都大同小异,我在网上找了一个: ?

    69030

    Android技能树 — 网络小结(3)之HTTPHTTPS

    URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。...那问题就转变成怎么样才能安全的把对称加密的密钥给对方,那么就用到了非对称加密方式,服务器拿着私钥,然后给发送方公钥,然后发送方拿着公钥来加密对称加密的密钥,这样这个密钥只有拿着私钥的服务器能解开拿到。...然后就可以用对称的密钥进行加密数据交互了。 上面的问题又演变成我怎么提前把非对称加密的公钥安全的给发送方,而不会中间被人偷偷换掉公钥。这时候就需要用CA证书(这个证书相当于公钥了)。 ?...区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用CA证书则不会弹出提示页面。这套证书其实就是一对公钥和私钥。公钥给别人加密使用,私钥给自己解密使用。...传送证书: 这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等。

    73230

    【JavaEE初阶】HTTP请求的构造及HTTPS

    (常见) html中,通过ajax发起http请求,就属于是"异步"的方式.这一行代码执行"发送请求"操作之后,不必等待服务器响应回来,就立即往下执行.当服务器的响应回来之后,再由浏览器通知到我们的代码中...明文 + 公钥 = 密文 密文 + 私钥 = 明文 此时, 就可以使用非对称加密了, 首先客户端会向服务器询问服务器的公钥是什么, 然后服务器会向客户端发送一个公钥, 客户端收到公钥后会使用这个公钥对客户端构造的对称密钥进行加密..., 工信机构通过审核后, 会给服务器发送一个证书, 该证书不是普通的证书, 里面含有一些校验机制 (校验的过程类似 TCP/UDP 的校验和), 然后服务器会把自己的公钥放入证书中, 客户端也不再询问公钥..., 而是询问服务器证书, 得到证书后会去查该证书是否合法, 如果合法才会使用服务器证书中的公钥去进行对密文请求与密钥的加密, 并发送给服务器, 如果不合法浏览器就会弹窗警告....那么客户端是如何对证书进行验证的呢? 实际上, 操作系统是会内置一些工信机构的信息(包含工信机构的公钥)的.

    32820
    领券