zoukankan      html  css  js  c++  java
  • openssl

    Openssl ? 查看命令

    Whatis  <command> 查看命令有什么用处

    Man enc

    Openssl:

    从多子命令,分为三类:

    标准命令

    信息摘要命令(dgst子命令)

    加密命令(enc子命令)

    对称加密:

    工具: openssl enc gpg

    支持的算法: des3 3des aes....

    enc命令:

    加密:  openssl enc -e des3 -a -salt -in 从哪里获取 -out 保存为

    ]# openssl enc -e -des3 -a -salt -in passwd -out pss.txt

    解密: openssl enc -d des3 -a -salt -in     -out    

    ]# openssl enc -d -des3 -a -salt -in pss.txt -out passwd

    单项加密:

    工具: openssl dgst,md5sum.sha1sum,sha224sum

    dgst命令:

    ]# openssl dgst -md5 passwd

    MD5(passwd)= 141aa3b65bc687ef1ba273a8f0b8d87a

    ]# md5sum passwd

    141aa3b65bc687ef1ba273a8f0b8d87a  passwd

    #两个效果一样

    生成用户密码:

    工具: passwd, openssl passwd

    ]# whatis passwd

    passwd (1)           - update user's authentication tokens

    sslpasswd (1ssl)     - compute password hashes

    ]# man sslpasswd

    ]# openssl passwd -1 -salt 123 #加密

    生成随机数密码

    工具: openssl rand

    ]# whatis rand

    ]# man sslrand

    ]# openssl rand -base64 NUM

    ]# openssl rand -hex NUM      每次的密码都不一样

    公钥加密:

    加密解密:

    算法: RSA, ELGamal

    工具: openssl rsautl,gpg

    数字签名:

    算法: RSA, DSA, ELGamal

    工具: 和上面一样

    密钥交换:

    算法: DH

    生成密钥:

    生成公钥: ]# (umask 077;openssl genrsa 2048 > ./k.private)

    提取公钥:  ]# openssl rsa -in ./k.private -pubout

    Linux系统上的随机数生成器:

    /dev/rabdom 仅从内存返回随机数,随机数用尽,阻塞;

    /dev/urandom 从内存返回随机数,随机数用尽,会利用软件生成伪随机数,非阻塞

    伪随机数不安全;

    CA:

    公共信任的CA,私有CA

    建立私有CA:

    openssl

    openCA

    Openssl命令:

    配置文件: ]# ls /etc/pki/tls/openssl.cnf

    构建私有CA:

    在确定配置为CA的服务器上生成一个自签证书,并为CA提供所需的目录及文件即可;

    步骤:

    1)生成私钥:

    ]# (umask 077;openssl genrsa 4096 > /etc/pki/CA/private/cakey.pem)

    2)生成自签证书:

    ]# man req

    ]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655

    -new: 生成新证书签署请求

    -509: 生成自签格式证书,专用于创建私有CA时;

    -key: 生成请求时用到的私有文件路径

    -out: 生成的请求文件路径;如果自签操作将直接生成签署过的证书;

    -days: 证书的有效时长,单位是天

    3)为CA提供所需的目录及文件;

    ]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts} #如果默认没有的话就自建

    ]# touch /etc/pki/CA/{serial,index.txt}

    ]# echo 01 > /etc/pki/CA/serial

    要用到证书进行安全通信的服务器,需要向CA请求签署证书:

    步骤: (以httpd为例)

    1)用到证书的主机生成证书签署请求;

    ① ]# mkdir /etc/httpd/ssl

    ② ]# cd /etc/httpd/ssl

    ③ ]#(umask 077;openssl genrsa 2048 > /etc/httpd/ssl/httpd.key)

    ( 2 )生成证书签署请求

    1) ]# openssl req -new -key /etc/httpd/ssl/httpd.key -out httpd.csr  -days 365

    ( 3 ) 将请求通过可靠方式发送给CA主机:

    ]# scp /etc/httpd/ssl/httpd.csr 139.9.43.223:/tmp/

    ( 4 ) 在CA主机上签署证书:

    ]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpds -days 365

    查看证书中信息:

    ]# openssl x509 -in certs/httpd.crt -noout -serial -subject

    吊销证书:

    步骤(需要在CA主机上执行)

    (1) 客户端获取要吊销的证书的serial(在使用证书的主机执行);

    ]# openssl x509 -in certs/httpd.crt -noout -serial -subject

    (2) CA主机吊销证书

    先根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致;

    ]# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

    其中SERIAL要换成证书真正的序列号

    (3) 生成吊销证书的吊销编号(第一次吊销证书时执行)

    ]# echo 01 > /etc/pki/CA/crlnumber

    (4) 更新证书吊销列表

    ]# openssl ca -gencrl -out thisca.crl

    查看crl文件

    ]# openss crl -in /PATH/FROM/CRL_FILE.crl -noout -text

  • 相关阅读:
    4.程序员那点事-遭窃
    3.程序员那点事-惭愧与无奈
    2.程序员那点事-迷惘与憧憬
    1.程序员那点事-抉择
    6月22日の勉強レポート
    6月20日の勉強レポート
    6月16日の勉強レポート
    6月15日の勉強レポート
    IOSアプリケーション開発環境の構築
    iOSシステム構成の纏め
  • 原文地址:https://www.cnblogs.com/wengzhenqi/p/11674129.html
Copyright © 2011-2022 走看看