获取SSL证书的有效日期的几种方法文档格式.docx
《获取SSL证书的有效日期的几种方法文档格式.docx》由会员分享,可在线阅读,更多相关《获取SSL证书的有效日期的几种方法文档格式.docx(6页珍藏版)》请在冰豆网上搜索。
1
创建全文
2011-5-9
黄威
简介
openssl提供了SSL协议的一个开放源代码的实现,包含三部分:
ssl库,加解密库和命令行工具。
在命令行工具中s_client是一个以SSL协议连接远程服务器的客户端程序,该工具可以用于测试诊断。
虽然s_client只提供了一些基础功能,但是其内部具体实现中使用了ssl库的大部分接口。
(注:
s_client命令行的语法和常用参数的用途详见附录1)
运行要求
操作系统:
AIX或Linux
需要安装openssl软件,详见附件《Linux下安装openssl步骤》
操作步骤
s_client在SSL握手协议中的应用——获取证书的有效日期。
详见以下步骤:
(一)、提取服务器的证书
1)在linux平台下创建脚本retrieve-cert.sh并存入一下清单1.1中的内容。
获取服务器的证书内容。
清单1.1获取证书:
2)创建脚本GetEndDate.sh并存入清单1.2中的内容。
该脚本的输出内容就是服务器端的X509证书经过Base64编码后的内容并将脚本输出存入文件server.pem中。
清单1.2提取证书:
3)将脚本retrieve-cert.sh和GetEndDate.sh放在同一个目录下,执行GetEndDate.sh192.168.10.9(参数1为服务器IP,参数2为端口,如果没有参数2即默认值443),即可获取加载了SSL的Apache服务器192.168.10.9的证书,运行截图:
备注:
如果是直接用命令行获取Apache培训实验服务器端证书,提取到本地文件server.pem中,执行命令如下:
(二)、获取证书的有效到期日期
接下来有3种方法获取证书的有效到期日期
(备注:
openssl指令x509简介详见附录2)
1)方法一:
使用x509工具,查看根证书的具体内容,特别是证书签发者和持有者的身份,如清单2所示。
清单2解码根证书
运行截图:
(NotAfter行即显示的时证书的有效日期)
2)方法二:
用命令行直接打印证书的到期时间:
3)方法三:
如果能登陆服务器端,可直接查看server.crt:
[root@Apache_VMconf]#catserver.crt|grep"
NotAfter"
附录1:
s_client命令行的语法为:
openssls_client[-connecthost:
port>
][-verifydepth][-certfilename][-keyfilename]
[-CApathdirectory][-CAfilefilename][-reconnect][-pause][-showcerts][-debug][-msg]
[-nbio_test][-state][-nbio][-crlf][-ign_eof][-quiet]
常用参数的具体用途如下:
-connecthost:
port:
指定远程服务器的地址和端口,如果没有该参数,默认值为localhost:
443;
-certfilename:
若服务器端需要验证客户端的身份,通过-cert指定客户端的证书文件。
-keyfilename:
指定私钥文件;
-verifydepth:
打开服务器证书验证并定义证书验证过程中的最大深度。
-showcerts:
显示服务器证书链;
-CAfilefilename:
指定用于验证服务器证书的根证书;
-state:
打印出SSL会话的状态。
附录2:
openssl简介-指令x509
用法:
opensslx509[-informDER|PEM|NET][-outformDER|PEM|NET]
[-keyformDER|PEM][-CAformDER|PEM][-CAkeyformDER|PEM]
[-infilename][-outfilename][-serial][-hash][-subject]
[-issuer][-nameoptoption][-email][-startdate][-enddate]
[-purpose][-dates][-modulus][-fingerprint][-alias]
[-noout][-trustout][-clrtrust][-clrreject][-addtrustarg]
[-addrejectarg][-setaliasarg][-daysarg]
[-signkeyfilename][-x509toreq][-req][-CAfilename]
[-CAkeyfilename][-CAcreateserial][-CAserialfilename]
[-text][-C][-md2|-md5|-sha1|-mdc2][-clrext]
[-extfilefilename][-extensionssection]
说明:
本指令是一个功能很丰富的证书处理工具。
可以用来显示证书的内容,转换其格式,给CSR签名等等。
由于功能太多,按功能分成几部分来讲。
输入,输出等一些一般性的option:
-informDER|PEM|NET
指定输入文件的格式。
-outformDER|PEM|NET
指定输出文件格式
-infilename
指定输入文件名
-outfilename
指定输出文件名
-md2|-md5|-sha1|-mdc2
指定使用的哈希算法。
缺省的是MD5于打印有关的option
-text
用文本方式详细打印出该证书的所有细节。
-noout
不打印出请求的编码版本信息。
-modulus
打印出公共密钥的系数值。
没研究过RSA就别用这个了。
-serial
打印出证书的系列号。
-hash
把证书的拥有者名称的哈希值给打印出来。
-subject
打印出证书拥有者的名字。
-issuer
打印证书颁发者名字。
-nameoptoption
指定用什么格式打印上俩个option的输出。
后面有详细的介绍。
-email
如果有,打印出证书申请者的email地址
-startdate
打印证书的起始有效时间
-enddate
打印证书的到期时间
-dates
把上俩个option都给打印出来