项目编号: 22




利用OpenSSL实现证书的创建和验证


                    组长:吴道远

          组员:邵泽慧   徐林   邵依   陈浩
一、创建证书
证书的层次结构
一、创建证书
证书的层次结构




          Root

          CA
一、创建证书
证书的层次结构




          Root

          CA



          Server
           Cert
一、创建证书
创建根证书(Root CA,最高层认证中心)

1. 创建CA的私钥:
               openssl.exe genrsa -out rootroot-key.pem 1024


2. 创建CA的证书请求:(clzqwdy@gmail.com)

     openssl req -new –key rootroot-key.pem -out rootroot-req.csr -text


3. 对刚刚生成的证书请求进行自签名:
openssl.exe x509 -req -in rootroot-req.csr -out rootroot-cert.pem -sha1 -signkey
    rootroot-key.pem -days 3650 -text -extfile openssl.cnf -extensions v3_ca

4. 将证书导出成浏览器支持的.p12格式:(PKCS标准)
 openssl.exe pkcs12 -export -cacerts -in rootroot-cert.pem -inkey rootroot-
                        key.pem -out rootroot.p12
一、创建证书
创建根证书(Root CA,最高层认证中心)

1. 创建CA的私钥:
               openssl.exe genrsa -out rootroot-key.pem 1024


2. 创建CA的证书请求:(clzqwdy@gmail.com)

     openssl req -new –key rootroot-key.pem -out rootroot-req.csr -text


3. 对刚刚生成的证书请求进行自签名:
openssl.exe x509 -req -in rootroot-req.csr -out rootroot-cert.pem -sha1 -signkey
    rootroot-key.pem -days 3650 -text -extfile openssl.cnf -extensions v3_ca

4. 将证书导出成浏览器支持的.p12格式:(PKCS标准)
 openssl.exe pkcs12 -export -cacerts -in rootroot-cert.pem -inkey rootroot-
                        key.pem -out rootroot.p12
一、创建证书
创建根证书(Root CA,最高层认证中心)

1. 创建CA的私钥:
               openssl.exe genrsa -out rootroot-key.pem 1024


2. 创建CA的证书请求:(clzqwdy@gmail.com)

     openssl req -new –key rootroot-key.pem -out rootroot-req.csr -text


3. 对刚刚生成的证书请求进行自签名:
openssl.exe x509 -req -in rootroot-req.csr -out rootroot-cert.pem -sha1 -signkey
    rootroot-key.pem -days 3650 -text -extfile openssl.cnf -extensions v3_ca

4. 将证书导出成浏览器支持的.p12格式:(PKCS标准)
 openssl.exe pkcs12 -export -cacerts -in rootroot-cert.pem -inkey rootroot-
                        key.pem -out rootroot.p12
一、创建证书
创建根证书(Root CA,最高层认证中心)

1. 创建CA的私钥:
               openssl.exe genrsa -out rootroot-key.pem 1024


2. 创建CA的证书请求:(clzqwdy@gmail.com)

     openssl req -new –key rootroot-key.pem -out rootroot-req.csr -text


3. 对刚刚生成的证书请求进行自签名:
openssl.exe x509 -req -in rootroot-req.csr -out rootroot-cert.pem -sha1 -signkey
    rootroot-key.pem -days 3650 -text -extfile openssl.cnf -extensions v3_ca

4. 将证书导出成浏览器支持的.p12格式:(PKCS标准)
 openssl.exe pkcs12 -export -cacerts -in rootroot-cert.pem -inkey rootroot-
                        key.pem -out rootroot.p12
一、创建证书
创建根证书(Root CA,最高层认证中心)

1. 创建CA的私钥:
               openssl.exe genrsa -out rootroot-key.pem 1024


2. 创建CA的证书请求:(clzqwdy@gmail.com)

     openssl req -new –key rootroot-key.pem -out rootroot-req.csr -text


3. 对刚刚生成的证书请求进行自签名:
openssl.exe x509 -req -in rootroot-req.csr -out rootroot-cert.pem -sha1 -signkey
    rootroot-key.pem -days 3650 -text -extfile openssl.cnf -extensions v3_ca

4. 将证书导出成浏览器支持的.p12格式:(PKCS标准)
 openssl.exe pkcs12 -export -cacerts -in rootroot-cert.pem -inkey rootroot-
                        key.pem -out rootroot.p12
一、创建证书
创建Server证书

1. 创建Server的私钥:
             openssl.exe genrsa -out serverserver-key.pem 1024


2. 创建Server的证书请求:(hacker@gmail.com)

 openssl req -new -key serverserver-key.pem -out serverserver-req.csr -text


3. 用CA的证书用私钥对Server的证书请求进行签名:
openssl.exe x509 -req -in serverserver-req.csr -CA rootroot-cert.pem -CAkey
rootroot-key.pem -CAcreateserial -days 730 -out serverserver-cert.pem -text

4. 将证书导出成浏览器支持的.p12格式:
 openssl.exe pkcs12 -export -clcerts -in rootroot-cert.pem -inkey rootroot-
                        key.pem -out rootroot.p12
一、创建证书
创建Server证书

1. 创建Server的私钥:
             openssl.exe genrsa -out serverserver-key.pem 1024


2. 创建Server的证书请求:(hacker@gmail.com)

 openssl req -new -key serverserver-key.pem -out serverserver-req.csr -text


3. 用CA的证书用私钥对Server的证书请求进行签名:
openssl.exe x509 -req -in serverserver-req.csr -CA rootroot-cert.pem -CAkey
rootroot-key.pem -CAcreateserial -days 730 -out serverserver-cert.pem -text

4. 将证书导出成浏览器支持的.p12格式:
 openssl.exe pkcs12 -export -clcerts -in rootroot-cert.pem -inkey rootroot-
                        key.pem -out rootroot.p12
一、创建证书
创建Server证书

1. 创建Server的私钥:
             openssl.exe genrsa -out serverserver-key.pem 1024


2. 创建Server的证书请求:(hacker@gmail.com)

 openssl req -new -key serverserver-key.pem -out serverserver-req.csr -text


3. 用CA的证书用私钥对Server的证书请求进行签名:
openssl.exe x509 -req -in serverserver-req.csr -CA rootroot-cert.pem -CAkey
rootroot-key.pem -CAcreateserial -days 730 -out serverserver-cert.pem -text

4. 将证书导出成浏览器支持的.p12格式:
 openssl.exe pkcs12 -export -clcerts -in rootroot-cert.pem -inkey rootroot-
                        key.pem -out rootroot.p12
一、创建证书
创建Server证书

1. 创建Server的私钥:
             openssl.exe genrsa -out serverserver-key.pem 1024


2. 创建Server的证书请求:(hacker@gmail.com)

 openssl req -new -key serverserver-key.pem -out serverserver-req.csr -text


3. 用CA的证书用私钥对Server的证书请求进行签名:
openssl.exe x509 -req -in serverserver-req.csr -CA rootroot-cert.pem -CAkey
rootroot-key.pem -CAcreateserial -days 730 -out serverserver-cert.pem -text

4. 将证书导出成浏览器支持的.p12格式:
 openssl.exe pkcs12 -export -clcerts -in rootroot-cert.pem -inkey rootroot-
                        key.pem -out rootroot.p12
一、创建证书
创建Server证书

1. 创建Server的私钥:
             openssl.exe genrsa -out serverserver-key.pem 1024


2. 创建Server的证书请求:(hacker@gmail.com)

 openssl req -new -key serverserver-key.pem -out serverserver-req.csr -text


3. 用CA的证书用私钥对Server的证书请求进行签名:
openssl.exe x509 -req -in serverserver-req.csr -CA rootroot-cert.pem -CAkey
rootroot-key.pem -CAcreateserial -days 730 -out serverserver-cert.pem -text

4. 将证书导出成浏览器支持的.p12格式:
 openssl.exe pkcs12 -export -clcerts -in rootroot-cert.pem -inkey rootroot-
                        key.pem -out rootroot.p12
二、证书格式

1. X.509 标准
  a)   类比于POSIX,反正就是个接口标准
  b)   大多数证书格式遵循的. Also: X.500 PKCS
  c)   结构!!! 见server-cert.pem

2. .pem后缀的证书
  a)   PEM格式( -inform PEM ),Base64编码
  b)   -----BEGIN CERTIFICATE----- 与 -----END CERTIFICATE-----

3. .cer .crt .der后缀的证书
  a)   Usually: DER form,binary
  b)   Sometimes: Base64 (or PEM form)
二、证书格式

1. X.509 标准
  a)   类比于POSIX,反正就是个接口标准
  b)   大多数证书格式遵循的. Also: X.500 PKCS
  c)   结构!!! 见server-cert.pem

2. .pem后缀的证书
  a)   PEM格式( -inform PEM ),Base64编码
  b)   -----BEGIN CERTIFICATE----- 与 -----END CERTIFICATE-----

3. .cer .crt .der后缀的证书
  a)   Usually: DER form,binary
  b)   Sometimes: Base64 (or PEM form)
二、证书格式

1. X.509 标准
  a)   类比于POSIX,反正就是个接口标准
  b)   大多数证书格式遵循的. Also: X.500 PKCS
  c)   结构!!! 见server-cert.pem

2. .pem后缀的证书
  a)   PEM格式( -inform PEM ),Base64编码
  b)   -----BEGIN CERTIFICATE----- 与 -----END CERTIFICATE-----

3. .cer .crt .der后缀的证书
  a)   Usually: DER form,binary
  b)   Sometimes: Base64 (or PEM form)
二、证书格式

1. X.509 标准
  a)   类比于POSIX,反正就是个接口标准
  b)   大多数证书格式遵循的. Also: X.500 PKCS
  c)   结构!!! 见server-cert.pem

2. .pem后缀的证书
  a)   PEM格式( -inform PEM ),Base64编码
  b)   -----BEGIN CERTIFICATE----- 与 -----END CERTIFICATE-----

3. .cer .crt .der后缀的证书
  a)   Usually: DER form,binary
  b)   Sometimes: Base64 (or PEM form)
三、验证证书
Verifying a certificate chain all the way to the root CA
三、验证证书
Verifying a certificate chain to an intermediate CA




                                                      Root
                                                      CA

                                                      Server
                                                       Cert
三、验证证书
A certificate chain that can't be verified
三、验证证书
demo原理 + 命令行方式验证 + 编程方式验证

1. 结合课上讲的原理demo一下:
   a)   root-cert.pem AND server-cert.pem
   b)   是否过期 + 签名是否正确(即是否是这个CA签的) + CA是否可信
   c)   Demo: 验证签名是否正确的具体过程

2. 用CA的证书来验证Server的证书:
        openssl verify -CAfile rootroot-cert.pem serverserver-cert.pem

3. 验证一个已经过期的证书:(and编程验证)
openssl verify -CAfile iTrustchina-root-base64.cer iTrustchina-server-base64.cer
三、验证证书
demo原理 + 命令行方式验证 + 编程方式验证

1. 结合课上讲的原理demo一下:
   a)   root-cert.pem AND server-cert.pem
   b)   是否过期 + 签名是否正确(即是否是这个CA签的) + CA是否可信
   c)   Demo: 验证签名是否正确的具体过程

2. 用CA的证书来验证Server的证书:
        openssl verify -CAfile rootroot-cert.pem serverserver-cert.pem

3. 验证一个已经过期的证书:(and编程验证)
openssl verify -CAfile iTrustchina-root-base64.cer iTrustchina-server-base64.cer
三、验证证书
demo原理 + 命令行方式验证 + 编程方式验证

1. 结合课上讲的原理demo一下:
   a)   root-cert.pem AND server-cert.pem
   b)   是否过期 + 签名是否正确(即是否是这个CA签的) + CA是否可信
   c)   Demo: 验证签名是否正确的具体过程

2. 用CA的证书来验证Server的证书:
        openssl verify -CAfile rootroot-cert.pem serverserver-cert.pem

3. 验证一个已经过期的证书:(and编程验证)
openssl verify -CAfile iTrustchina-root-base64.cer iTrustchina-server-base64.cer
三、验证证书
demo原理 + 命令行方式验证 + 编程方式验证

1. 结合课上讲的原理demo一下:
   a)   root-cert.pem AND server-cert.pem
   b)   是否过期 + 签名是否正确(即是否是这个CA签的) + CA是否可信
   c)   Demo: 验证签名是否正确的具体过程

2. 用CA的证书来验证Server的证书:
        openssl verify -CAfile rootroot-cert.pem serverserver-cert.pem

3. 验证一个已经过期的证书:(and编程验证)
openssl verify -CAfile iTrustchina-root-base64.cer iTrustchina-server-base64.cer
四、Http代理
一个正常的Http Proxy处理CONNECT()时的情况
四、Http代理
Man In the Middle



                    Proxy
Client                      Web Server
四、Http代理
Man In the Middle

          CONNECT

                    Proxy
Client                      Web Server
四、Http代理            CA sign a server cert to Host

Man In the Middle

          CONNECT

                              Proxy
Client                                              Web Server
四、Http代理            CA sign a server cert to Host

Man In the Middle

          CONNECT
             SSL
                              Proxy
Client                                              Web Server
四、Http代理             CA sign a server cert to Host

Man In the Middle

          CONNECT
             SSL
            get Request        Proxy
Client                                               Web Server
四、Http代理             CA sign a server cert to Host

Man In the Middle
                                          Connect host: port
          CONNECT
             SSL
            get Request        Proxy
Client                                                         Web Server
四、Http代理             CA sign a server cert to Host

Man In the Middle
                                          Connect host: port
          CONNECT
             SSL                                 SSL
            get Request        Proxy
Client                                                         Web Server
四、Http代理             CA sign a server cert to Host

Man In the Middle
                                          Connect host: port
          CONNECT
             SSL                                 SSL
            get Request        Proxy       send Https URL
Client                                                         Web Server
Thank You Very Much!

More Related Content

PDF
OpenSSL User Manual and Data Format
PPTX
VMware vSphere technical presentation
PPTX
Virtualization 101: Everything You Need To Know To Get Started With VMware
PDF
Introduction to virtualization
PPT
憑證
PDF
Laradebut #7 - Laravel AUTH
PDF
Session1(更新20230205).pdf
PPT
0502 Windwos Server 2008 Card Space 新一代身份驗證機制
OpenSSL User Manual and Data Format
VMware vSphere technical presentation
Virtualization 101: Everything You Need To Know To Get Started With VMware
Introduction to virtualization
憑證
Laradebut #7 - Laravel AUTH
Session1(更新20230205).pdf
0502 Windwos Server 2008 Card Space 新一代身份驗證機制

Similar to 利用OpenSSL创建并验证证书 (20)

XLS
Puppet安装总结
PDF
使用NodeJS构建静态资源管理系统
DOCX
Puppet安装测试
PPTX
基于Silverlight的RIA架构及百度应用
PDF
Rpc原理与实现
PDF
如何使用JCE和CAPICOM进行加密和签名
PPT
构建ActionScript游戏服务器,支持超过15000并发连接
PPT
Cas Sso Intro
DOC
Apache配置文件说明
PPT
第14章 创建与管理www服务
PPT
第14章 创建与管理www服务
DOC
Helix安装说明
PDF
ASP.Net MVC2 简介
PPTX
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
PPTX
Asp.net 5 新功能與變革
PDF
Cent os 安装 subversion
PPT
使用Nginx轻松实现开源负载均衡
PPT
1026 Windows Server 2008 Active Directory 版權管理服務
PDF
OpenWebSchool - 11 - CodeIgniter
Puppet安装总结
使用NodeJS构建静态资源管理系统
Puppet安装测试
基于Silverlight的RIA架构及百度应用
Rpc原理与实现
如何使用JCE和CAPICOM进行加密和签名
构建ActionScript游戏服务器,支持超过15000并发连接
Cas Sso Intro
Apache配置文件说明
第14章 创建与管理www服务
第14章 创建与管理www服务
Helix安装说明
ASP.Net MVC2 简介
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Asp.net 5 新功能與變革
Cent os 安装 subversion
使用Nginx轻松实现开源负载均衡
1026 Windows Server 2008 Active Directory 版權管理服務
OpenWebSchool - 11 - CodeIgniter
Ad

利用OpenSSL创建并验证证书

  • 1. 项目编号: 22 利用OpenSSL实现证书的创建和验证 组长:吴道远 组员:邵泽慧 徐林 邵依 陈浩
  • 5. 一、创建证书 创建根证书(Root CA,最高层认证中心) 1. 创建CA的私钥: openssl.exe genrsa -out rootroot-key.pem 1024 2. 创建CA的证书请求:(clzqwdy@gmail.com) openssl req -new –key rootroot-key.pem -out rootroot-req.csr -text 3. 对刚刚生成的证书请求进行自签名: openssl.exe x509 -req -in rootroot-req.csr -out rootroot-cert.pem -sha1 -signkey rootroot-key.pem -days 3650 -text -extfile openssl.cnf -extensions v3_ca 4. 将证书导出成浏览器支持的.p12格式:(PKCS标准) openssl.exe pkcs12 -export -cacerts -in rootroot-cert.pem -inkey rootroot- key.pem -out rootroot.p12
  • 6. 一、创建证书 创建根证书(Root CA,最高层认证中心) 1. 创建CA的私钥: openssl.exe genrsa -out rootroot-key.pem 1024 2. 创建CA的证书请求:(clzqwdy@gmail.com) openssl req -new –key rootroot-key.pem -out rootroot-req.csr -text 3. 对刚刚生成的证书请求进行自签名: openssl.exe x509 -req -in rootroot-req.csr -out rootroot-cert.pem -sha1 -signkey rootroot-key.pem -days 3650 -text -extfile openssl.cnf -extensions v3_ca 4. 将证书导出成浏览器支持的.p12格式:(PKCS标准) openssl.exe pkcs12 -export -cacerts -in rootroot-cert.pem -inkey rootroot- key.pem -out rootroot.p12
  • 7. 一、创建证书 创建根证书(Root CA,最高层认证中心) 1. 创建CA的私钥: openssl.exe genrsa -out rootroot-key.pem 1024 2. 创建CA的证书请求:(clzqwdy@gmail.com) openssl req -new –key rootroot-key.pem -out rootroot-req.csr -text 3. 对刚刚生成的证书请求进行自签名: openssl.exe x509 -req -in rootroot-req.csr -out rootroot-cert.pem -sha1 -signkey rootroot-key.pem -days 3650 -text -extfile openssl.cnf -extensions v3_ca 4. 将证书导出成浏览器支持的.p12格式:(PKCS标准) openssl.exe pkcs12 -export -cacerts -in rootroot-cert.pem -inkey rootroot- key.pem -out rootroot.p12
  • 8. 一、创建证书 创建根证书(Root CA,最高层认证中心) 1. 创建CA的私钥: openssl.exe genrsa -out rootroot-key.pem 1024 2. 创建CA的证书请求:(clzqwdy@gmail.com) openssl req -new –key rootroot-key.pem -out rootroot-req.csr -text 3. 对刚刚生成的证书请求进行自签名: openssl.exe x509 -req -in rootroot-req.csr -out rootroot-cert.pem -sha1 -signkey rootroot-key.pem -days 3650 -text -extfile openssl.cnf -extensions v3_ca 4. 将证书导出成浏览器支持的.p12格式:(PKCS标准) openssl.exe pkcs12 -export -cacerts -in rootroot-cert.pem -inkey rootroot- key.pem -out rootroot.p12
  • 9. 一、创建证书 创建根证书(Root CA,最高层认证中心) 1. 创建CA的私钥: openssl.exe genrsa -out rootroot-key.pem 1024 2. 创建CA的证书请求:(clzqwdy@gmail.com) openssl req -new –key rootroot-key.pem -out rootroot-req.csr -text 3. 对刚刚生成的证书请求进行自签名: openssl.exe x509 -req -in rootroot-req.csr -out rootroot-cert.pem -sha1 -signkey rootroot-key.pem -days 3650 -text -extfile openssl.cnf -extensions v3_ca 4. 将证书导出成浏览器支持的.p12格式:(PKCS标准) openssl.exe pkcs12 -export -cacerts -in rootroot-cert.pem -inkey rootroot- key.pem -out rootroot.p12
  • 10. 一、创建证书 创建Server证书 1. 创建Server的私钥: openssl.exe genrsa -out serverserver-key.pem 1024 2. 创建Server的证书请求:(hacker@gmail.com) openssl req -new -key serverserver-key.pem -out serverserver-req.csr -text 3. 用CA的证书用私钥对Server的证书请求进行签名: openssl.exe x509 -req -in serverserver-req.csr -CA rootroot-cert.pem -CAkey rootroot-key.pem -CAcreateserial -days 730 -out serverserver-cert.pem -text 4. 将证书导出成浏览器支持的.p12格式: openssl.exe pkcs12 -export -clcerts -in rootroot-cert.pem -inkey rootroot- key.pem -out rootroot.p12
  • 11. 一、创建证书 创建Server证书 1. 创建Server的私钥: openssl.exe genrsa -out serverserver-key.pem 1024 2. 创建Server的证书请求:(hacker@gmail.com) openssl req -new -key serverserver-key.pem -out serverserver-req.csr -text 3. 用CA的证书用私钥对Server的证书请求进行签名: openssl.exe x509 -req -in serverserver-req.csr -CA rootroot-cert.pem -CAkey rootroot-key.pem -CAcreateserial -days 730 -out serverserver-cert.pem -text 4. 将证书导出成浏览器支持的.p12格式: openssl.exe pkcs12 -export -clcerts -in rootroot-cert.pem -inkey rootroot- key.pem -out rootroot.p12
  • 12. 一、创建证书 创建Server证书 1. 创建Server的私钥: openssl.exe genrsa -out serverserver-key.pem 1024 2. 创建Server的证书请求:(hacker@gmail.com) openssl req -new -key serverserver-key.pem -out serverserver-req.csr -text 3. 用CA的证书用私钥对Server的证书请求进行签名: openssl.exe x509 -req -in serverserver-req.csr -CA rootroot-cert.pem -CAkey rootroot-key.pem -CAcreateserial -days 730 -out serverserver-cert.pem -text 4. 将证书导出成浏览器支持的.p12格式: openssl.exe pkcs12 -export -clcerts -in rootroot-cert.pem -inkey rootroot- key.pem -out rootroot.p12
  • 13. 一、创建证书 创建Server证书 1. 创建Server的私钥: openssl.exe genrsa -out serverserver-key.pem 1024 2. 创建Server的证书请求:(hacker@gmail.com) openssl req -new -key serverserver-key.pem -out serverserver-req.csr -text 3. 用CA的证书用私钥对Server的证书请求进行签名: openssl.exe x509 -req -in serverserver-req.csr -CA rootroot-cert.pem -CAkey rootroot-key.pem -CAcreateserial -days 730 -out serverserver-cert.pem -text 4. 将证书导出成浏览器支持的.p12格式: openssl.exe pkcs12 -export -clcerts -in rootroot-cert.pem -inkey rootroot- key.pem -out rootroot.p12
  • 14. 一、创建证书 创建Server证书 1. 创建Server的私钥: openssl.exe genrsa -out serverserver-key.pem 1024 2. 创建Server的证书请求:(hacker@gmail.com) openssl req -new -key serverserver-key.pem -out serverserver-req.csr -text 3. 用CA的证书用私钥对Server的证书请求进行签名: openssl.exe x509 -req -in serverserver-req.csr -CA rootroot-cert.pem -CAkey rootroot-key.pem -CAcreateserial -days 730 -out serverserver-cert.pem -text 4. 将证书导出成浏览器支持的.p12格式: openssl.exe pkcs12 -export -clcerts -in rootroot-cert.pem -inkey rootroot- key.pem -out rootroot.p12
  • 15. 二、证书格式 1. X.509 标准 a) 类比于POSIX,反正就是个接口标准 b) 大多数证书格式遵循的. Also: X.500 PKCS c) 结构!!! 见server-cert.pem 2. .pem后缀的证书 a) PEM格式( -inform PEM ),Base64编码 b) -----BEGIN CERTIFICATE----- 与 -----END CERTIFICATE----- 3. .cer .crt .der后缀的证书 a) Usually: DER form,binary b) Sometimes: Base64 (or PEM form)
  • 16. 二、证书格式 1. X.509 标准 a) 类比于POSIX,反正就是个接口标准 b) 大多数证书格式遵循的. Also: X.500 PKCS c) 结构!!! 见server-cert.pem 2. .pem后缀的证书 a) PEM格式( -inform PEM ),Base64编码 b) -----BEGIN CERTIFICATE----- 与 -----END CERTIFICATE----- 3. .cer .crt .der后缀的证书 a) Usually: DER form,binary b) Sometimes: Base64 (or PEM form)
  • 17. 二、证书格式 1. X.509 标准 a) 类比于POSIX,反正就是个接口标准 b) 大多数证书格式遵循的. Also: X.500 PKCS c) 结构!!! 见server-cert.pem 2. .pem后缀的证书 a) PEM格式( -inform PEM ),Base64编码 b) -----BEGIN CERTIFICATE----- 与 -----END CERTIFICATE----- 3. .cer .crt .der后缀的证书 a) Usually: DER form,binary b) Sometimes: Base64 (or PEM form)
  • 18. 二、证书格式 1. X.509 标准 a) 类比于POSIX,反正就是个接口标准 b) 大多数证书格式遵循的. Also: X.500 PKCS c) 结构!!! 见server-cert.pem 2. .pem后缀的证书 a) PEM格式( -inform PEM ),Base64编码 b) -----BEGIN CERTIFICATE----- 与 -----END CERTIFICATE----- 3. .cer .crt .der后缀的证书 a) Usually: DER form,binary b) Sometimes: Base64 (or PEM form)
  • 19. 三、验证证书 Verifying a certificate chain all the way to the root CA
  • 20. 三、验证证书 Verifying a certificate chain to an intermediate CA Root CA Server Cert
  • 21. 三、验证证书 A certificate chain that can't be verified
  • 22. 三、验证证书 demo原理 + 命令行方式验证 + 编程方式验证 1. 结合课上讲的原理demo一下: a) root-cert.pem AND server-cert.pem b) 是否过期 + 签名是否正确(即是否是这个CA签的) + CA是否可信 c) Demo: 验证签名是否正确的具体过程 2. 用CA的证书来验证Server的证书: openssl verify -CAfile rootroot-cert.pem serverserver-cert.pem 3. 验证一个已经过期的证书:(and编程验证) openssl verify -CAfile iTrustchina-root-base64.cer iTrustchina-server-base64.cer
  • 23. 三、验证证书 demo原理 + 命令行方式验证 + 编程方式验证 1. 结合课上讲的原理demo一下: a) root-cert.pem AND server-cert.pem b) 是否过期 + 签名是否正确(即是否是这个CA签的) + CA是否可信 c) Demo: 验证签名是否正确的具体过程 2. 用CA的证书来验证Server的证书: openssl verify -CAfile rootroot-cert.pem serverserver-cert.pem 3. 验证一个已经过期的证书:(and编程验证) openssl verify -CAfile iTrustchina-root-base64.cer iTrustchina-server-base64.cer
  • 24. 三、验证证书 demo原理 + 命令行方式验证 + 编程方式验证 1. 结合课上讲的原理demo一下: a) root-cert.pem AND server-cert.pem b) 是否过期 + 签名是否正确(即是否是这个CA签的) + CA是否可信 c) Demo: 验证签名是否正确的具体过程 2. 用CA的证书来验证Server的证书: openssl verify -CAfile rootroot-cert.pem serverserver-cert.pem 3. 验证一个已经过期的证书:(and编程验证) openssl verify -CAfile iTrustchina-root-base64.cer iTrustchina-server-base64.cer
  • 25. 三、验证证书 demo原理 + 命令行方式验证 + 编程方式验证 1. 结合课上讲的原理demo一下: a) root-cert.pem AND server-cert.pem b) 是否过期 + 签名是否正确(即是否是这个CA签的) + CA是否可信 c) Demo: 验证签名是否正确的具体过程 2. 用CA的证书来验证Server的证书: openssl verify -CAfile rootroot-cert.pem serverserver-cert.pem 3. 验证一个已经过期的证书:(and编程验证) openssl verify -CAfile iTrustchina-root-base64.cer iTrustchina-server-base64.cer
  • 27. 四、Http代理 Man In the Middle Proxy Client Web Server
  • 28. 四、Http代理 Man In the Middle CONNECT Proxy Client Web Server
  • 29. 四、Http代理 CA sign a server cert to Host Man In the Middle CONNECT Proxy Client Web Server
  • 30. 四、Http代理 CA sign a server cert to Host Man In the Middle CONNECT SSL Proxy Client Web Server
  • 31. 四、Http代理 CA sign a server cert to Host Man In the Middle CONNECT SSL get Request Proxy Client Web Server
  • 32. 四、Http代理 CA sign a server cert to Host Man In the Middle Connect host: port CONNECT SSL get Request Proxy Client Web Server
  • 33. 四、Http代理 CA sign a server cert to Host Man In the Middle Connect host: port CONNECT SSL SSL get Request Proxy Client Web Server
  • 34. 四、Http代理 CA sign a server cert to Host Man In the Middle Connect host: port CONNECT SSL SSL get Request Proxy send Https URL Client Web Server
  • 35. Thank You Very Much!