• Save
利用OpenSSL创建并验证证书
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

利用OpenSSL创建并验证证书

on

  • 5,050 views

最后几页PPT是重点,是稍微可以炫耀一下的东东。

最后几页PPT是重点,是稍微可以炫耀一下的东东。

Statistics

Views

Total Views
5,050
Views on SlideShare
5,045
Embed Views
5

Actions

Likes
7
Downloads
0
Comments
0

2 Embeds 5

http://www.linkedin.com 3
http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

利用OpenSSL创建并验证证书 Presentation Transcript

  • 1. 项目编号: 22 利用OpenSSL实现证书的创建和验证 组长:吴道远 组员:邵泽慧 徐林 邵依 陈浩
  • 2. 一、创建证书 证书的层次结构
  • 3. 一、创建证书 证书的层次结构 Root CA
  • 4. 一、创建证书 证书的层次结构 Root CA Server Cert
  • 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
  • 26. 四、Http代理 一个正常的Http Proxy处理CONNECT()时的情况
  • 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!