date、openssl命令的深入理解

一、date 命令时间戳

常用参数

date - 打印或设置系统日期和时间 

根据指定格式显示当前时间或设置系统时间.

-d, --date=STRING
    显示由 STRING 指定的时间, 而不是当前时间 
-f, --file=DATEFILE
    显示 DATEFILE 中每一行指定的时间, 如同将 DATEFILE 中的每行作为 --date 的参数一样 

    -I, --iso-8601[=TIMESPEC] 按照 ISO-8601 的日期/时间格式输出时间. 

    TIMESPEC=`date' (或者不指定时)仅输出日期,等于 `hours', `minutes', 或`seconds' 时按照指定精度输出日期及时间. 

-r, --reference=FILE
    显示 FILE 的最后修改时间 
-R, --rfc-822
    根据 RFC-822 指定格式输出日期 
-s, --set=STRING
    根据 STRING 设置时间 
-u, --utc, --universal
    显示或设置全球时间(格林威治时间) 
  实用1:时间戳:  
[root@localhost ~]# date    #获取当前时间
Sat Jan 18 10:18:19 CST 2020
##把当前时间转时间戳
[root@localhost ~]# date -d "Sat Jan 18 10:18:19 CST 2020" '+%s'
1579313899
[root@localhost ~]# date -d '1970-01-01 UTC 1579313899 seconds'    #时间戳转时间
Sat Jan 18 10:18:19 CST 2020
#时间戳转时间
[root@localhost ~]# date -d @1579313899
Sat Jan 18 10:18:19 CST 2020

根据要求,精确指定精度输出:

# date -I   #按照 ISO-8601 的日期/时间格式输出时间
[root@localhost ~]# date -I
2020-01-18
# date -Ihours 
[root@localhost ~]# date -Ihours  #按小时精度输出
2020-01-18T10+0800   

# date -Iminutes  #按分钟精度输出
[root@localhost ~]# date -Iminutes
2020-01-18T10:30+0800

# date -Iseconds   #按秒精度输出
[root@localhost ~]# date -Iseconds
2020-01-18T10:31:07+0800

根据要求做时间调整:

[root@localhost ~]# date -d "1 day ago"  #一天前
Fri Jan 17 10:32:50 CST 2020
[root@localhost ~]# date -d "1 hour ago" 一个小时前
Sat Jan 18 09:33:01 CST 2020
[root@localhost ~]# date -d "1 minute ago" #一分钟前
Sat Jan 18 10:32:10 CST 2020
[root@localhost ~]# date -d "-1 minute" #一分钟前
Sat Jan 18 10:32:56 CST 2020
[root@localhost ~]# date -d "+1 minute"  #一分钟后
Sat Jan 18 10:35:04 CST 2020
[root@localhost ~]# date -d "+1 month" #一个月后
Tue Feb 18 10:34:16 CST 2020
[root@localhost ~]# date -d "+1 year" #一年后的
Mon Jan 18 10:34:27 CST 2021
[root@localhost ~]# date -d "+1 year" +%F_%T #格式化输出
2021-01-18_10:37:06

二、Openssl 查看证书常用命令:

[root@localhost ~]# openssl crl -in file -inform der -noout ?
unknown option ?
usage: crl args
					#输入格式
 -inform arg     - input format - default PEM (DER or PEM)
                    #输出格式
 -outform arg    - output format - default PEM
 # 输出加密内容
 -text           - print out a text format version
 # 输入文件
 -in arg         - input file - default stdin
 # 输出到指定文件或输出到屏幕
 -out arg        - output file - default stdout
 # 输出hash值
 -hash           - print hash value
 # 输出指纹
 -fingerprint    - print the crl fingerprint
 输出DN
 -issuer         - print issuer DN
 输出上次生效时间
 -lastupdate     - lastUpdate field
 输出失效时间
 -nextupdate     - nextUpdate field
 输出CRL编号
 -crlnumber      - print CRL number
 -noout          - no CRL output
 -CAfile  name   - verify CRL using certificates in file "name"
 -CApath  dir    - verify CRL using certificates in "dir"
 -nameopt arg    - various certificate name options
示例一:查看证书注销列表更新时间,主要是为了验证证书的有效性
[root@localhost ~]# openssl crl -in ctl.crl -inform der -noout -lastupdate -nextupdate  -fingerprint -crlnumber
lastUpdate=Jan 15 05:32:28 2020 GMT   # 生效时间
nextUpdate=Jan 16 05:32:28 2020 GMT   # 失效时间
SHA1 Fingerprint=21:8D:05:2F:FC:E4:03:26:84:84:59:15:3E:A8:B8:12:A9:FE:28:92 #哈希指纹
crlNumber=00  #证书编号

# -in  查看的证书文件
# -inform  输入证书的格式,默认是PEM
# -noout  不输出证书内容到文件,默认输出到屏幕
# -lastupdate  输出生效时间
# -nextupdate  输出失效时间
# -fingerprint  证书指纹
# -crlnumber 证书编号

注意,使用openssl 查看的证书时间为标准的格林威治时间,在当地(China)需要在查看的时间基础上加上8个小时。

示例二:查看证书注销列表证书内容
[root@localhost ~]# openssl crl -in ctl.crl -inform der  -lastupdate -nextupdate -fingerprint -crlnumber -text -noout
lastUpdate=Jan 15 05:32:28 2020 GMT
nextUpdate=Jan 16 05:32:28 2020 GMT
SHA1 Fingerprint=21:8D:05:2F:FC:E4:03:26:84:84:59:15:3E:A8:B8:12:A9:FE:28:92
crlNumber=00

Certificate Revocation List (CRL):
        Version 2 (0x1)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: /C=CN/O=COM/CN=COM CA
        Last Update: Jan 15 05:32:28 2020 GMT
        Next Update: Jan 16 05:32:28 2020 GMT
        CRL extensions:
            X509v3 Authority Key Identifier:
                keyid:E8:57:D3:59:4F:BA:69:F4:33:BF:4C:35:2C:60:23:6B:D6:9E:B8:36

            X509v3 CRL Number:
                0
Revoked Certificates:
    Serial Number: 10038BC709DD787H
        Revocation Date: Jun 10 08:13:06 2019 GMT
        CRL entry extensions:
            X509v3 CRL Reason Code:
                Superseded
    Serial Number: 100F0D70180FE103
    ..........

总结:
OpenSSL简介:
OpenSSL 是一个安全套接字层密码库,包括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

常见的证书、密钥的编码格式:

PEM - Privacy Enhanced Mail (x509)

打开看文本格式,以"-----BEGIN-----"开头, "-----END-----"结尾,内容是Base64编码,查看PEM格式的信息可以用命令
openssl rsa -in my.pem -text -noout
Unix服务器偏向于使用这种编码格式.

DER - Distinguished Encoding Rules

打开看是二进制格式,不可读,查看DER格式的信息可以用命令
openssl rsa -in my.der -inform der -text -noout
Java和Windows服务器偏向于使用这种编码格式.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值