精华内容
下载资源
问答
  • openssl命令

    2017-07-14 11:13:54
    OpenSSL常用命令讲解
  • linux下openssl命令的使用
  • openssl命令中文版

    2018-09-07 23:19:24
    openssl命令中文版。
  • OpenSSL命令系列

    2017-08-24 10:14:06
    openssl命令的格式是”openssl command command-options args”,command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,大部分command都...

    1.1 ssl命令系列前言

    openssl命令的格式是”openssl command command-options args”,command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,大部分command都可以直接man command查看命令的用法和功能。

    1.2 openssl总指挥

    以下是openssl支持的伪命令,常用命令或可能用的上的命令加粗加红显示了,这些命令的用户在后面的文章中会一一介绍。

    [root@xuexi ~]# openssl --help
    openssl:Error: '--help' is an invalid command.
    
    # 支持的标准命令,即伪命令
    Standard commands
    asn1parse         ca                ciphers           cms              
    crl               crl2pkcs7         dgst              dh               
    dhparam           dsa               dsaparam          ec               
    ecparam           enc               engine            errstr           
    gendh             gendsa            genpkey           genrsa           
    nseq              ocsp              passwd            pkcs12            
    pkcs7             pkcs8             pkey              pkeyparam        
    pkeyutl           prime             rand              req              
    rsa               rsautl            s_client          s_server         
    s_time            sess_id           smime             speed             
    spkac             ts                verify            version          
    x509             
    
    # 指定"dgst"命令时即单向加密支持的算法,实际上支持更多的算法,具体见dgst命令
    Message Digest commands (see the `dgst' command for more details)
    md2               md4               md5               rmd160           
    sha               sha1             
    
    
    # 指定对称加密"enc"时支持的对称加密算法
    Cipher commands (see the `enc' command for more details)
    aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb      
    aes-256-cbc       aes-256-ecb       base64            bf               
    bf-cbc            bf-cfb            bf-ecb            bf-ofb           
    camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  camellia-192-ecb 
    camellia-256-cbc  camellia-256-ecb  cast              cast-cbc         
    cast5-cbc         cast5-cfb         cast5-ecb         cast5-ofb        
    des               des-cbc           des-cfb           des-ecb          
    des-ede           des-ede-cbc       des-ede-cfb       des-ede-ofb      
    des-ede3          des-ede3-cbc      des-ede3-cfb      des-ede3-ofb     
    des-ofb           des3              desx              idea             
    idea-cbc          idea-cfb          idea-ecb          idea-ofb         
    rc2               rc2-40-cbc        rc2-64-cbc        rc2-cbc          
    rc2-cfb           rc2-ecb           rc2-ofb           rc4              
    rc4-40            seed              seed-cbc          seed-cfb         
    seed-ecb          seed-ofb          zlib             

    看上去非常复杂?其实不复杂,只是伪命令多点而已,而且很多伪命令经常用到的选项也就1到两个。

    以下是各伪命令的选项”-passin”和”-passout”可能使用到的密码传递格式,“-passin”指的是传递解密时的密码,”-passout”指的是传递加密输出文件时的密码。如果不给定密码格式,将提示从终端输入。这一点在后面的文章中将不再细述。

    例如,要加密某个密钥文件,使得每次使用该密钥文件都需要输入密码,则使用”-passout”指定加密密码,当使用被加密的密钥文件时需要解密,使用”-passin”传递解密密码。

        格式一:pass:password   :password表示传递的明文密码
    
        格式二:env:var               :从环境变量var获取密码值
    
        格式三:file:filename        :filename文件中的第一行为要传递的密码。若filename同时传递给"-passin""-passout"选项,则filename的第一行为"-passin"的值,第二行为"-passout"的值
    
        格式四:stdin                   :从标准输入中获取要传递的密码

    常用Openssl命令

    申请证书

    SSL常用于身份验证、数据加密等应用中,要使用SSL,我们密码有自己的证书。数字证书一般要向专业的认证公司(如VeriSign)申请,并且都是收费的,某些情况下,我们只是想使用加密的数据通信,而不在乎认证,这时就可以自己制作一个证书,自己制作一个证书,有两种方式,一种是Self Signed,另一种是自己制作一个CA,然后由这个CA,来发布我们需要的证书。下面分别介绍这两个方法。

    生成Self Signed证书

    # 生成一个key,你的私钥,openssl会提示你输入一个密码,可以输入,也可以不输,
    # 输入的话,以后每次使用这个key的时候都要输入密码,安全起见,还是应该有一个密码保护
    > openssl genrsa -des3 -out selfsign.key 4096
    
    # 使用上面生成的key,生成一个certificate signing request (CSR)
    # 如果你的key有密码保护,openssl首先会询问你的密码,然后询问你一系列问题,
    # 其中Common Name(CN)是最重要的,它代表你的证书要代表的目标,如果你为网站申请的证书,就要添你的域名。
    > openssl req -new -key selfsign.key -out selfsign.csr
    
    # 生成Self Signed证书 selfsign.crt就是我们生成的证书了
    > openssl x509 -req -days 365 -in selfsign.csr -signkey selfsign.key -out selfsign.crt
    
    # 另外一个比较简单的方法就是用下面的命令,一次生成key和证书
    > openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

    生成自己的CA (Certificate Authority)

    CA是证书的发布者,CA可以发布其他人的证书,把CA的证书加入系统信任的根证书后,由CA发布的证书也被系统所信任,所以,CA的key是必须小心保护的,一般都要加密保护,并且限制为root权限读写。
    复制代码

    # 生成CA的key
    > openssl genrsa -des3 -out ca.key 4096
    
    # 生成CA的证书
    > openssl req -new -x509 -days 365 -key ca.key -out ca.crt
    
    # 生成我们的key和CSR这两步与上面Self Signed中是一样的
    > openssl genrsa -des3 -out myserver.key 4096
    > openssl req -new -key myserver.key -out myserver.csr
    
    # 使用ca的证书和key,生成我们的证书
    # 这里的set_serial指明了证书的序号,如果证书过期了(365天后),
    # 或者证书key泄漏了,需要重新发证的时候,就要加1
    > openssl x509 -req -days 365 -in myserver.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out myserver.crt

    查看证书

    # 查看KEY信息
    > openssl rsa -noout -text -in myserver.key
    
    # 查看CSR信息
    > openssl req -noout -text -in myserver.csr
    
    # 查看证书信息
    > openssl x509 -noout -text -in ca.crt
    
    # 验证证书
    # 会提示self signed
    > openssl verify selfsign.crt
    
    # 因为myserver.crt 是幅ca.crt发布的,所以会验证成功
    > openssl verify -CAfile ca.crt myserver.crt

    去掉key的密码保护

    有时候每次都要输入密码太繁琐了,可以把Key的保护密码去掉

    > openssl rsa -in myserver.key -out server.key.insecure

    不同格式证书的转换

    一般证书有三种格式:

    PEM(.pem) 前面命令生成的都是这种格式,
    DER(.cer .der) Windows 上常见
    PKCS#12文件(.pfx .p12) Mac上常见
    
    # PEM转换为DER
    > openssl x509 -outform der -in myserver.crt -out myserver.der
    
    # DER转换为PEM
    > openssl x509 -inform der -in myserver.cer -out myserver.pem
    
    # PEM转换为PKCS
    > openssl pkcs12 -export -out myserver.pfx -inkey myserver.key -in myserver.crt -certfile ca.crt
    
    # PKCS转换为PEM
    > openssl pkcs12 -in myserver.pfx -out myserver2.pem -nodes

    测试证书

    Openssl提供了简单的client和server工具,可以用来模拟SSL连接,做测试使用。

    # 连接到远程服务器
    > openssl s_client -connect www.google.com.hk:443
    
    # 模拟的HTTPS服务,可以返回Openssl相关信息 
    # -accept 用来指定监听的端口号 
    # -cert -key 用来指定提供服务的key和证书
    > openssl s_server -accept 443 -cert myserver.crt -key myserver.key -www
    
    # 可以将key和证书写到同一个文件中
    > cat myserver.crt myserver.key > myserver.pem
    # 使用的时候只提供一个参数就可以了
    > openssl s_server -accept 443 -cert myserver.pem -www
    
    # 可以将服务器的证书保存下来
    > openssl s_client -connect www.google.com.hk:443 </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > remoteserver.pem
    # 转换成DER文件,就可以在Windows下直接查看了
    > openssl x509 -outform der -in remoteserver.pem -out remoteserver.cer

    计算MD5和SHA1

    # MD5 digest
    > openssl dgst -md5 filename
    
    # SHA1 digest
    > openssl dgst -sha1 filename
    展开全文
  • openssl命令详解

    2009-08-06 15:10:39
    openssl命令详解, 介绍openssl 常用命令及使用方法
  • linux下openssl命令详解

    万次阅读 2017-01-12 17:31:34
    1,openssl命令总览 2,证书应用 3,RSA应用 4,SHA1 应用 5,base64应用 6,des3应用 1,OpenSSl命令总览 语法格式: openssl command [ command_opts ] [ command_args ] 常用command: version 用于...

    目录:

    1,openssl命令总览

    2,证书应用

    3,RSA应用

    4,SHA1 应用

    5,base64应用

    6,des3应用

    1,OpenSSl命令总览

    语法格式:

    openssl command [ command_opts ] [ command_args ]

    常用command:

    version    用于查看版本信息

    enc        用于加解密

    ciphers    列出加密套件

    genrsa    用于生成私钥

    rsa        RSA密钥管理(例如:从私钥中提取公钥)

    req        生成证书签名请求(CSR)

    crl        证书吊销列表(CRL)管理

    ca         CA管理(例如对证书进行签名)

    dgst      生成信息摘要

    rsautl    用于完成RSA签名、验证、加密和解密功能

    passwd    生成散列密码

    rand      生成伪随机数

    speed      用于测试加解密速度                    

    s_client  通用的SSL/TLS客户端测试工具

    X509       X.509证书管理

    verify      X.509证书验证

    pkcs7       PKCS#7协议数据管理



    2,证书应用

    申请证书

    SSL常用于身份验证、数据加密等应用中,要使用SSL,我们密码有自己的证书。数字证书一般要向专业的认证公司(VeriSign)申请,并且都是收费的,某些情况下,我们只是想使用加密的数据通信,而不在乎认证,这时就可以自己制作一个证书,自己制作一个证书,有两种方式,一种是Self Signed,另一种是自己制作一个CA,然后由这个CA,来发布我们需要的证书。下面分别介绍这两个方法。

    生成Self Signed证书

     

    生成一个key,你的私钥,openssl会提示你输入一个密码,可以输入,也可以不输,

    输入的话,以后每次使用这个key的时候都要输入密码,安全起见,还是应该有一个密码保护

    #openssl genrsa -des3 -out selfsign.key 4096

     

    #使用上面生成的key,生成一个certificate signing request (CSR)

    #如果你的key有密码保护,openssl首先会询问你的密码,然后询问你一系列问题,

    #其中Common Name(CN)是最重要的,它代表你的证书要代表的目标,如果你为网站申请的证书,就要添你的域名。

    #openssl req -new -key selfsign.key -out selfsign.csr

     

    #生成Self Signed证书selfsign.crt就是我们生成的证书了

    #openssl x509 -req -days 365 -in selfsign.csr -signkey selfsign.key -out selfsign.crt

     

    另外一个比较简单的方法就是用下面的命令,一次生成key和证书

    #openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

     

    生成自己的CA (Certificate Authority)

    CA是证书的发布者,CA可以发布其他人的证书,把CA的证书加入系统信任的根证书后,由CA发布的证书也被系统所信任,所以,CAkey是必须小心保护的,一般都要加密保护,并且限制为root权限读写。

     

    生成CAkey

    #openssl genrsa -des3 -out ca.key 4096

     

    #生成CA的证书

    #openssl req -new -x509 -days 365 -key ca.key -out ca.crt

     

    #生成我们的keyCSR这两步与上面Self Signed中是一样的

    #openssl genrsa -des3 -out myserver.key 4096

    #openssl req -new -key myserver.key -out myserver.csr

     

    #使用ca的证书和key,生成我们的证书

    #这里的set_serial指明了证书的序号,如果证书过期了(365天后)

    #或者证书key泄漏了,需要重新发证的时候,就要加1

    #openssl x509 -req -days 365 -in myserver.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out myserver.crt

     

    查看证书

    #查看KEY信息

    #openssl rsa -noout -text -in myserver.key

     

    #查看CSR信息

    #openssl req -noout -text -in myserver.csr

     

    #查看证书信息

    #openssl x509 -noout -text -in ca.crt

     

    #验证证书

    #会提示self signed

    #openssl verify selfsign.crt

     

    #因为myserver.crt是幅ca.crt发布的,所以会验证成功

    #openssl verify -CAfile ca.crt myserver.crt

     

    去掉key的密码保护

    #有时候每次都要输入密码太繁琐了,可以把Key的保护密码去掉

    #openssl rsa -in myserver.key -out server.key.insecure

     

    不同格式证书的转换

    一般证书有三种格式:

    PEM(.pem)前面命令生成的都是这种格式,

    DER(.cer .der) Windows上常见

    PKCS#12文件(.pfx .p12) Mac上常见

     

    # PEM转换为DER

    #openssl x509 -outform der -in myserver.crt -out myserver.der

     

    # DER转换为PEM

    #openssl x509 -inform der -in myserver.cer -out myserver.pem

     

    # PEM转换为PKCS

    #openssl pkcs12 -export -out myserver.pfx -inkey myserver.key -in myserver.crt -certfile ca.crt

     

    # PKCS转换为PEM

    #openssl pkcs12 -in myserver.pfx -out myserver2.pem -nodes

     

    测试证书

    Openssl提供了简单的clientserver工具,可以用来模拟SSL连接,做测试使用。

     

    #连接到远程服务器

    #openssl s_client -connect www.google.com.hk:443

     

    #模拟的HTTPS服务,可以返回Openssl相关信息

    # -accept用来指定监听的端口号

    # -cert -key用来指定提供服务的key和证书

    #openssl s_server -accept 443 -cert myserver.crt -key myserver.key -www

     

    #可以将key和证书写到同一个文件中

    #cat myserver.crt myserver.key > myserver.pem

    #使用的时候只提供一个参数就可以了

    #openssl s_server -accept 443 -cert myserver.pem -www

     

    #可以将服务器的证书保存下来

    #openssl s_client -connect www.google.com.hk:443 </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > remoteserver.pem

    #转换成DER文件,就可以在Windows下直接查看了

    #openssl x509 -outform der -in remoteserver.pem -out remoteserver.cer

     


    3,RSA应用

    #产生1024RSA私匙,用3DES加密它,口令为trousers

    #输出到文件rsaprivatekey.pem

    # openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024

     

    #从文件rsaprivatekey.pem读取私匙,用口令trousers解密,

    #生成的公钥匙输出到文件rsapublickey.pem

    # openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem

     

    #用公钥匙rsapublickey.pem加密文件plain.txt

    #输出到文件cipher.txt

    # openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt

     

    #使用私钥匙rsaprivatekey.pem解密密文cipher.txt

    #输出到文件plain.txt

    # openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt

     

    #用私钥匙rsaprivatekey.pem给文件plain.txt签名,

    #输出到文件signature.bin

    # openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin

     

    #用公钥匙rsapublickey.pem验证签名signature.bin

    #输出到文件plain.txt

    # openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain

     

    #X.509证书文件cert.pem中获取公钥匙,

    #3DES加密mail.txt

    #输出到文件mail.enc

    # openssl smime -encrypt -in mail.txt -des3 -out mail.enc cert.pem

     

    #X.509证书文件cert.pem中获取接收人的公钥匙,

    #用私钥匙key.pem解密S/MIME消息mail.enc

    #结果输出到文件mail.txt

    # openssl smime -decrypt -in mail.enc -recip cert.pem -inkey key.pem -out mail.txt

     

    # cert.pemX.509证书文件,用私匙key,pemmail.txt签名,

    #证书被包含在S/MIME消息中,输出到文件mail.sgn

    # openssl smime -sign -in mail.txt -signer cert.pem -inkey key.pem -out mail.sgn

     

    #验证S/MIME消息mail.sgn,输出到文件mail.txt

    #签名者的证书应该作为S/MIME消息的一部分包含在mail.sgn

    # openssl smime -verify -in mail.sgn -out mail.txt



    4,消息摘要算法应用例子

    #SHA1算法计算文件file.txt的哈西值,输出到stdout

    # openssl dgst -sha1 file.txt

     

    #SHA1算法计算文件file.txt的哈西值,输出到文件digest.txt

    # openssl sha1 -out digest.txt file.txt

     

    #DSS1(SHA1)算法为文件file.txt签名,输出到文件dsasign.bin

    #签名的private key必须为DSA算法产生的,保存在文件dsakey.pem

    # openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt

     

    #dss1算法验证file.txt的数字签名dsasign.bin

    #验证的private keyDSA算法产生的文件dsakey.pem

    # openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt

     

    #sha1算法为文件file.txt签名,输出到文件rsasign.bin

    #签名的private keyRSA算法产生的文件rsaprivate.pem

    # openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt

     

    #sha1算法验证file.txt的数字签名rsasign.bin

    #验证的public keyRSA算法生成的rsapublic.pem

    # openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt



    5,base64应用

    #对字符abc进行base64编码

    #echo abc | openssl base64

    结果为:YWJjCg==


    #对YWJjCg==解码

    #echo YWJjCg== | openssl base64 -d

    结果为:abc


    #对文件t.txt进行base64编码

    #openssl base64 -in t.txt

    结果为:aGVsbG8K


    #对aGVsbG8K进行解码

    #echo aGVsbG8K | openssl base64 -d

    结果为:abc


    #对t.txt进行编码并将结果输出到t.base64文件里

    #openssl base64 -in t.txt -out t.base64


    #若编码值存放在t.base64文件里,对其进行解码

    #openssl base64 -d -in t.base64

    结果为abc



    6,des3应用

    # 对称加密应用例子
    # 用DES3算法的CBC模式加密文件plaintext.doc,
    # 加密结果输出到文件ciphertext.bin
    # openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin

    # 用DES3算法的OFB模式解密文件ciphertext.bin,
    # 提供的口令为trousers,输出到文件plaintext.doc
    # 注意:因为模式不同,该命令不能对以上的文件进行解密
    # openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers

    # 用Blowfish的CFB模式加密plaintext.doc,口令从环境变量PASSWORD中取
    # 输出到文件ciphertext.bin
    # openssl bf-cfb -salt -in plaintext.doc -out ciphertext.bin -pass env:PASSWORD

    *******************************

    未完待续

    *******************************

    展开全文
  • OpenSSL命令解释

    2014-02-21 09:51:12
    OpenSSL+命令翻译 很实用 全在实战中运用到 简单易懂
  • openssl 命令(1): openssl req 命令详解

    万次阅读 2018-09-11 11:13:16
    本文就主要记录一下openssl命令选项的意义,并记录一下简单的命令示例。 首先说明生成证书请求需要什么:申请者需要将自己的信息及其公钥放入证书请求中。但在实际操作过程中, 所需要提供的是私钥而非公钥,因为...

    openssl req命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书。
    本文就主要记录一下openssl命令选项的意义,并记录一下简单的命令示例。

    首先说明下生成证书请求需要什么:申请者需要将自己的信息及其公钥放入证书请求中。但在实际操作过程中,
    所需要提供的是私钥而非公钥,因为它会自动从私钥中提取公钥。另外,还需要将提供的数据进行数字签名
    (使用单向加密),保证该证书请求文件的完整性和一致性,防止他人盗取后进行篡改,

    主要命令选项:
         -new    :说明生成证书请求文件
         -x509   :说明生成自签名证书
         -key    :指定已有的秘钥文件生成秘钥请求,只与生成证书请求选项-new配合。
         -newkey :-newkey是与-key互斥的,-newkey是指在生成证书请求或者自签名证书的时候自动生成密钥,
                  然后生成的密钥名称由-keyout参数指定。当指定newkey选项时,后面指定rsa:bits说明产生
                  rsa密钥,位数由bits指定。 如果没有指定选项-key和-newkey,默认自动生成秘钥。
         -out    :-out 指定生成的证书请求或者自签名证书名称
         -config :默认参数在ubuntu上为 /etc/ssl/openssl.cnf, 可以使用-config指定特殊路径的配置文件
         -nodes  :如果指定-newkey自动生成秘钥,那么-nodes选项说明生成的秘钥不需要加密,即不需要输入passphase.   
         -batch  :指定非交互模式,直接读取config文件配置参数,或者使用默认参数值      

    命令示例:
    1.
    #生成自签名证书,证书名client.crt,采用自动生成秘钥的方式,指定生成秘钥长度为1024,加密,秘钥文件client.key.
    openssl req -x509 -newkey rsa:1024 -out client.crt -keyout client.key -batch -nodes   
    #上面的命令加上-new选项是同样的执行效果
    openssl req -new -x509 -newkey rsa:1024 -out client.crt -keyout client.key -batch -nodes   

    2.
    #生成自签名证书,证书名client.crt,指定秘钥文件,秘钥文件为rsa_private_key.pem。
    openssl req -new -x509 -key ./rsa_private_key.pem -out client.crt -nodes -batch
    #注意下面命令不能正确执行,不加-new 命令貌似不能指定秘钥文件
    openssl req -x509 -key ./rsa_private_key.pem -out client.crt -nodes -batch

    3.
    #指定秘钥文件pri_key.pem,生成证书请求文件 req.csr
    openssl req -new -key pri_key.pem -out req.csr
    #使用req命令,以文本方式查看刚生成的证书请求文件
    openssl req -in req1.csr -text
    #查看证书请求文件的公钥, 这个公钥就是从pri_key.pem私钥文件导出的公钥
    openssl req -in req1.csr -noout -pubkey

    下列选项和-noout选项配合分别查看证书请求文件的部分内容
    -noout -pubkey   #查看证书请求文件的公钥
    -noout -subject  #查看证书请求文件的个人信息部分

    最后可以通过man req 查看详细的openssl req的详细信息。

     

     

     

    展开全文
  • Mac Openssl命令

    2019-10-11 09:09:36
    注意:命令和值之间最好只有一个空格符,不然openssl会吧多余的空格当成命令或值得一部分,导致出错 消息摘要 openssl dgst -md5 1.txt //输出到stdout openssl md5 1.txt //输出到stdout openssl md5 -out 3....

    注意:命令和值之间最好只有一个空格符,不然openssl会吧多余的空格当成命令或值得一部分,导致出错

    消息摘要

    openssl dgst -md5 1.txt //输出到stdout

    openssl md5 1.txt //输出到stdout

    openssl md5 -out 3.txt 1.txt //将1.txt的MD5值输出到3.txt

    对称加密

    openssl enc -e -des3 -in 1.txt -out 2.txt //加密,需要输入密码

    openssl enc -e -des3 -in 1.txt -out 2.txt -pass pass:123 //加密,不需要输入密码

    openssl enc -d -des3 -in 2.txt -out 3.txt //解密,需要输入密码

    openssl enc -d -des3 -in 2.txt -out 3.txt -pass pass:123 //解密,不需要输入密码

    openssl enc -e -des3 -salt -in 1.txt -out 2.txt -pass pass:456 //加盐

    RSA

    生成的文件的后缀名其实可以随意的更改,文件本身的格式取决于命令参数设置,而不是我们指定的文件名。生成的私钥文件的后缀名我可以任意指定为pem,key,abc但是查看这个文件本身的格式(file "file.xxx")时,展示的文件格式都是PEM RSA private key。生成的公钥文件也不管后缀是什么,本身的格式都是文本文件(ASCII text)

    openssl genrsa -out privatekey.pem -des3 2048 //生成私钥,带密码

    openssl genrsa -out privatekey.pem 2048 //生成私钥,不带密码

    openssl rsa -in privatekey.pem -pubout -out publickey.pem //根据私钥生成公钥

    openssl rsautl -encrypt -inkey publickey.pem -pubin -in 1.txt -out 2.txt //公钥加密文件,生成的文件不能直接打开

    openssl rsautl -decrypt -inkey privatekey.pem -in 2.txt -out 3.txt //私钥解密文件

    openssl rsautl -sign -inkey privatekey.pem -in 1.txt -out 2.txt //私钥加密

    openssl rsautl -verify -pubin -inkey publickey.pem -in 2.txt -out 4.txt //公钥解密

    证书

    证书中包含了证书的基本信息,请求者的公钥,CA的私钥加密过后的数字签名

    证书请求包含了证书的基本信息,请求者的公钥(可以直接使用私钥,openssl会自动从私钥中提取公钥)

    证书请求文件和根证书都有一个数字签名,都是用自己的私钥进行加密的

    openssl genrsa -out privatekey.pem 2048 //生成私钥,不带密码

    openssl req -new -key privatekey.pem -out req.csr //生成证书请求,文件格式为PEM certificate request

    openssl req -in req.csr -text -noout //查看证书请求内容,-text和-noout都是可选项,证书请求内容分为文本和头部信息,-subject也可以只输出subject部分(个人基本信息:subject=/C=CN/ST=SH/L=SH/CN=172.31.132.83),-pubkey可以输出公钥部分

    openssl req -x509 -key privatekey.pem -in req.csr -out root.crt -days 365 //根据证书请求文件创建证书,文件格式为PEM certificate

    req -new -x509 -key privatekey.pem -out root1.crt -days 365 //直接创建证书,创建的过程中在内存中生成证书请求文件

    openssl req -new -out req3.csr //可以自动创建私钥和证书请求文件,在Mac下面会将私钥打印的公屏上,生成请求文件

    openssl x509 -req -CA root.crt -CAkey root.key.pem -CAserial ca.srl -CAcreateserial -in server.req.csr -out server.crt -days 365 //创建由根证书签名的应用证书

    openssl x509 -req -in req.csr -signkey privatekey.pem -out idsrv4.crt -days 365 //创建根证书自签名证书

    格式转换

    openssl x509 -outform der -in root.crt -out root.cer //将pem转为der 编码格式是der,但是后缀一般取为cer

    openssl x509 -inform der -in root.cer -out root1.crt //将der转为pem

    openssl pkcs12 -export -out cert.pfx -inkey privatekey.pem -in root.crt //将pem转化成pfx

    openssl pkcs12 -in cert.pfx -out tet.pem //将pfx专务pem,直接用cat file打开,将里面的多份数据分别保存获得私钥和证书


    1.秘钥只有pem和der2中格式,pem是base64编码,der是二进制编码

    2.PKCS12/PFX 将多个证书和私钥存储在一个加密文件中

    展开全文
  • openssl命令的格式是”openssl command command-options args”,command部分有很多种命令,这些命令需要依赖于openssl命令才能执行,所以称为伪命令(pseudo-command),每个伪命令都有各自的功能,大部分command都...
  • 像下面这样运行 openssl 命令可以生成一个 14 字符长的随机强密码。 $ openssl rand -base64 14 WjzyDqdkWf3e53tJw/c= 如果你想要生成 10 个 14 字符长的随机强密码,将 openssl 命令与 for 循环结合起来使用。 $ ...
  • 介绍如何使用openssl命令自建CA,生成证书和私钥,命令简洁
  • openssl常用命令

    2011-09-08 15:35:49
    openssl常用命令 openssl常用命令 openssl常用命令
  • 提供实际操作的示例,演示linuxopenssl提供的命令,生成多级证书,并验证各级证书的合法性。
  • OpenSSL命令详解(一)——标准命令

    万次阅读 2017-02-06 00:06:25
    ref: ...http://blog.csdn.net/scuyxi/article/details/54898870OpenSSL命令分为以下3个部分。 标准命令Standard commands1. asn1parse:asn1parse用于解释用ANS.1
  • openssl 命令(3): openssl x509命令详解

    万次阅读 2018-09-14 09:19:23
    openssl x509命令具以下的一些功能,例如输出证书信息,签署证书请求文件、生成自签名证书、转换证书格式等。openssl x509工具不会使用openssl配置文件中的设定,而是完全需要自行设定或者使用该伪命令的默认值,它...
  • 常用openssl命令

    2014-09-16 19:02:24
    The Most Common OpenSSL Commands One of the most versatile SSL tools is OpenSSL which is an open source implementation of the SSL protocol. There are versions of OpenSSL for nearly every ...
  • openssl 命令目录

    2018-04-25 09:16:13
    命令目录 genrsa passwd pkcs8 pkcs12 pkeyparampkeyutlprimerand req RSArsautls_client smimes_server srp ts
  • 常用Openssl命令

    千次阅读 2014-04-10 14:54:31
    数字证书一般要向专业的认证公司(如VeriSign)申请,并且都是收费的,某些情况,我们只是想使用加密的数据通信,而不在乎认证,这时就可以自己制作一个证书,自己制作一个证书,有两种方式,一种是Self Signed,另一...
  • openssl命令的使用

    千次阅读 2017-05-25 13:17:58
    查看openssl的安装包:
  • openssl 命令(2): openssl dgst 命令详解

    千次阅读 2018-09-11 16:51:44
    open dgst命令的主要功能是,计算信息摘要(哈希), 给文件生成数字签名以及验证数字签名。  信息摘要算法的特点是:  1,输出数据定长, 即任意长度的输入数据,经过摘要算法都会得到订场的输出数据。  2,不可...
  • openssl 命令自动创建证书请求

    千次阅读 2018-04-16 11:11:59
    openssl 命令自动创建证书请求前言使用openssl命令自动创建证书请求可以免去交互过程中的繁琐。ecc 算法证书请求#!/bin/sh `openssl ecparam -out private.pem -name secp384r1 -genkey ` if [[ "$1" =...
  • OpenSSL命令详解

    万次阅读 2013-08-24 20:23:27
    这一针在农信银2代项目中有幸能碰到加密...OpenSSL功能远胜于KeyTool,可用于根证书,服务器证书和客户证书的管理 这里使用的是Win32OpenSSL_Light-1_0_1e.exe http://www.slproweb.com/products/Win32OpenSSL.htm
  • date、openssl命令的深入理解

    千次阅读 2020-01-18 10:44:51
    openssl命令一、date 命令时间戳二、Openssl 查看证书常用命令: 一、date 命令时间戳 常用参数 date - 打印或设置系统日期和时间 根据指定格式显示当前时间或设置系统时间. -d, --date=STRING 显示由 STRING ...
  • OpenSSL命令--ca

    万次阅读 2013-10-28 21:12:22
    详细介绍了openssl中ca命令的参数、应用环境、配置、缺点等信息

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,105
精华内容 46,042
关键字:

openssl命令下