SlideShare a Scribd company logo
1 of 35
项目编号: 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

Similar to 利用OpenSSL创建并验证证书

Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结Yiwei Ma
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统Frank Xu
 
Puppet安装测试
Puppet安装测试Puppet安装测试
Puppet安装测试Yiwei Ma
 
基于Silverlight的RIA架构及百度应用
基于Silverlight的RIA架构及百度应用基于Silverlight的RIA架构及百度应用
基于Silverlight的RIA架构及百度应用Cat Chen
 
Rpc原理与实现
Rpc原理与实现Rpc原理与实现
Rpc原理与实现wavefly
 
如何使用JCE和CAPICOM进行加密和签名
如何使用JCE和CAPICOM进行加密和签名如何使用JCE和CAPICOM进行加密和签名
如何使用JCE和CAPICOM进行加密和签名Zac John
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 Renaun Erickson
 
Cas Sso Intro
Cas Sso IntroCas Sso Intro
Cas Sso IntroShiny Zhu
 
Apache配置文件说明
Apache配置文件说明Apache配置文件说明
Apache配置文件说明wensheng wei
 
第14章 创建与管理www服务
第14章 创建与管理www服务第14章 创建与管理www服务
第14章 创建与管理www服务ben1024
 
第14章 创建与管理www服务
第14章 创建与管理www服务第14章 创建与管理www服务
第14章 创建与管理www服务ben1024
 
Helix安装说明
Helix安装说明Helix安装说明
Helix安装说明Yiwei Ma
 
ASP.Net MVC2 简介
ASP.Net MVC2 简介ASP.Net MVC2 简介
ASP.Net MVC2 简介Allen Lsy
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Jeff Chu
 
Asp.net 5 新功能與變革
Asp.net 5 新功能與變革Asp.net 5 新功能與變革
Asp.net 5 新功能與變革Gelis Wu
 
Cent os 安装 subversion
Cent os 安装 subversionCent os 安装 subversion
Cent os 安装 subversionYUCHENG HU
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡cachowu
 
1026 Windows Server 2008 Active Directory 版權管理服務
1026 Windows Server 2008 Active Directory 版權管理服務1026 Windows Server 2008 Active Directory 版權管理服務
1026 Windows Server 2008 Active Directory 版權管理服務Timothy Chen
 
OpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniterOpenWebSchool - 11 - CodeIgniter
OpenWebSchool - 11 - CodeIgniterHung-yu Lin
 

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

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

利用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!