zoukankan      html  css  js  c++  java
  • OpennSSL之基本了解

    HTTPS是一种协议,等于HTTP+TLS(由于历史原因,SSL3.0之后就被TLS1.0替代了)。
    openssl是一套开源工具集,主要有两个特性:
    1. 实现了ssl2,ssl3,TLSv1,TLSv1.1,TLSv1.2协议。
    2. 实现目前常用的加密算法。
    没有一个非常精准的方法来判断HTTPS是否使用openssl,但是根据网站返回的server类型,可以大致估计是否使用了openssl,
    比如如果使用apache或者nginx,那么肯定是使用了openssl。保守估计至少70%以上的网站是使用openssl的。而windows系列
    的服务器包括IIS,windows server等都是使用schannel,没有使用openssl,不会受heartbleed影响。

    看到一个网友解释https与openssl的关系,感觉很恰当:
     
    HTTPS与OpenSSL就是iPhone与富士康的关系。

    openssl s_client -connect www.baidu.com:443            #可以查看到证书,想要得到证书,复制下来保存即可。    

                                                                                           这只是拿的服务器的证书。

    如果想要拿到证书列,怎么办?
     
    openssl s_client -connect www.baidu.com:443 -showcerts
     
     
    把证书赋复制另存为了baidu.pem ,在linux中如何查看呢?
     
    #openssl  x59 -in baidu.pem -text -noout                        #(证书解析器)查看证书详细的内容。
    第一步:非对称秘钥的生产:
     
    创建rsa
     
    #openssl genrsa -out rsa.key 2048                 #这个文件里面既有公钥,也有私钥
     
     
    #openssl rsa -text -in rsa.key                  #读取这个rea.key
     
     
    #openssl rsa -in rsa.key -pubout -out rea-public.key           #导出public key
     
     
     
     
    创建dsa
     
    #openssl dsaparam -genkey 2048 | openssl dsa -out dsa.key             #以dsa的加密方式创建。
     
     
    创建ecdsa
     
    #openssl ecparam -genkey -name secp256r1 | openssl ec -out ec.key           #以ecdsa的加密方式创建
     
     
    第二步:创建csr
     
     
    #openssl req -new -key rsa.key -out rsa.csr
     
     一步一步的填写输入,带有【】表示的是可选项。
     
    #openssl req -text -in rsa.csr -noout              #查看这个rsa.csr    文件
     
     
    最后一步签名:
     
    #openssl -x509 -req -days 365 -in rsa.csr -signkey rsa.key -out rsa_changtao.cer                  #有限期365天。
     
    PEM格式可视,可以直接用编辑器打开,而原始的的der不行。
     
     
    格式是可以互相转换的:
     
     

    nginx中添加证书配置:

    nignx -t     #验证niginx的配置文件是否正确、

    so_protocols  配置支持的ssl 版本

    openssl s_client -connect www.baidu.com:443 -showcerts     可以用这个命令查看支持的ssl版本。

    配置,支持的算法

    查看支持的算法
     

    openssl s_client connect www.baidu.com:443

     openssl s_client connect www.baidu.com:443 -tls1                       #测试tls1是否支持!

     openssl s_client connect -help              #查看帮助。
    #利用 取反来测试是否支持。
    #openssl ciphers  -v                #查看支持的cipher

    #最后后跟算法的类型,查看是否支持,可以填写前几个字母,不必是全部 的

    nmap -PN -p443 -sT —script ssl-enum-ciphers www.baidu.com
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

  • 相关阅读:
    制作一个Frame用于保存文件和打开文件
    制作一个Frame界面显示盘符的东西
    制作一个图形化界面(演示键盘和鼠标的监听)
    编码解码练习---截取字节
    编码解码问题
    一些在内存里面操作的流
    类型流DataInputstream 和DataOutputStream的用法
    管道流 PipedInputStream和PipedOutputStream 用法
    RandomAccessFile的用法
    面向对象的更多说明
  • 原文地址:https://www.cnblogs.com/nopnog/p/7065267.html
Copyright © 2011-2022 走看看