openssl 命令(3): openssl x509命令详解

openssl x509命令具以下的一些功能,例如输出证书信息,签署证书请求文件、生成自签名证书、转换证书格式等。openssl x509工具不会使用openssl配置文件中的设定,而是完全需要自行设定或者使用该伪命令的默认值,它就像是一个完整的小型的CA工具箱。

主要选项:
-in filename          : #指定证书输入文件,若同时指定了"-req"选项,则表示输入文件为证书请求文件。
-out filename        : #指定输出文件
-md2|-md5|-sha1|-mdc2: #指定单向加密的算法。

查看证书选项:
-text                :以text格式输出证书内容,即以最全格式输出,
                       :包括public key,signature algorithms,issuer和subject names,serial number以及any trust settings.
-certopt option:自定义要输出的项
-noout             :禁止输出证书请求文件中的编码部分
-pubkey          :输出证书中的公钥
-modulus        :输出证书中公钥模块部分
-serial             :输出证书的序列号
-subject          :输出证书中的subject
-issuer           :输出证书中的issuer,即颁发者的subject
-subject_hash:输出证书中subject的hash码
-issuer_hash  :输出证书中issuer(即颁发者的subject)的hash码
-hash             :等价于"-subject_hash",但此项是为了向后兼容才提供的选项
-email            :输出证书中的email地址,如果有email的话
-startdate       :输出证书有效期的起始日期
-enddate       :输出证书有效期的终止日期
-dates           :输出证书有效期,等价于"startdate+enddate"
-fingerprint    :输出指纹摘要信息

签署选项:
*****************************************************************************************
*  伪命令x509可以像openssl ca一样对证书或请求执行签名动作。注意,openssl x509         *
*  不读取配置文件,所有的一切配置都由x509自行提供,所以openssl x509像是一个"mini CA"  *
*****************************************************************************************
-signkey filename :该选项指定签名秘钥(秘钥必须是输入文件的私钥),并使得由-in 提供的输入文件转成自签名的证书。
                  :自签署的输入文件"-in file"的file可以是证书请求文件,也可以是已签署过的证书。会使用文件中的subject name 作为issuer name.
-x509toreq        :将已签署的证书转换回证书请求文件。需要使用"-signkey"选项来传递需要的私钥。
-req              :x509工具默认以证书文件做为inputfile(-in file),指定该选项将使得input file的file为证书请求文件。
-set_serial n     :指定证书序列号。该选项可以和"-singkey"或"-CA"选项一起使用。
                  :如果和"-CA"一起使用,则"-CAserial"或"-CAcreateserial"选项指定的serial值将失效。
                  :序列号可以使用数值或16进制值(0x开头)。也接受负值,但是不建议。
-CA filename      :指定签署时所使用的CA证书。该选项一般和"-req"选项一起使用,用于为证书请求文件签署。
-CAkey filename   :设置CA签署时使用的私钥文件。如果该选项没有指定,将假定CA私钥已经存在于CA自签名的证书文件中。
-CAserial filename:设置CA使用的序列号文件。当使用"-CA"选项来签名时,它将会使用某个文件中指定的序列号来唯一标识此次签名后的证书文件。
                  :这个序列号文件的内容仅只有一行,这一行的值为16进制的数字。当某个序列号被使用后,该文件中的序列号将自动增加。
                  :默认序列号文件以CA证书文件基名加".srl"为后缀命名。如CA证书为"mycert.pem",则默认寻找的序列号文件为"mycert.srl"
-CAcreateserial   :当使用该选项时,如果CA使用的序列号文件不存在将自动创建:该文件将包含序列号值"02"并且此次签名后证书文件序列号为1。
                  :一般如果使用了"-CA"选项而序列号文件不存在将会产生错误"找不到srl文件"。

证书扩展选项:
-purpose:选项检查证书的扩展项并决定该证书允许用于哪些方面,即证书使用目的范围。
        
#例如,使用x509工具自建CA。由于x509无法建立证书请求文件,所以只能使用openssl req来生成请求文件,然后使用x509来自签署。自签署时,
#使用"-req"选项明确表示输入文件为证书请求文件,否则将默认以为是证书文件,再使用"-signkey"提供自签署时使用的私钥。
openssl req -new -keyout key.pem -out req.csr
openssl x509 -req -in req.csr -signkey key.pem -out x509.crt

# x509也可以用来签署他人的证书请求,即为他人颁发证书。注意,为他人颁发证书时,确保serial文件存在,建议使用自动创建的选项"-CAcreateserial"。
openssl x509 -req -in req.csr -CA ca.crt -CAkey ca.key -out x509.crt -CAcreateserial

 

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值