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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

OpennSSL之基本了解的更多相关文章

  1. CentOS6.5下LNMP环境的搭建

    #写的不好,大牛勿喷 #其实我很努力 OS:CentOS6.5 1.关闭SELinux,关闭防火墙 原因:1.SELinux确实可以提高服务器的安全性,但是对于服务器的性能存在一定的影响,同时它的复杂 ...

  2. hashlib 模块用来进行hash

    hashlib的基本概述: python中的 hashlib 模块用来进行hash 或者md5加密,而且这种加密是不可逆的,所以这种算法又被称为摘要算法, 其支持Opennssl库提供的所有算法,包括 ...

  3. 手把手教你通过Ambari新建Hadoop集群图解案例

    手把手教你通过Ambari新建Hadoop集群图解案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 登陆系统之后,会看到Ambari空空如也的欢迎界面,接下来我们就需要介绍如何通 ...

  4. Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇

    Linux操作系统安全-局域网私有CA(Certificate Authority)证书服务器实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.试验架构说明 node101 ...

随机推荐

  1. Solr查询中涉及到的Cache使用及相关的实现【转】

    转自:http://www.cnblogs.com/phinecos/archive/2012/05/24/2517018.html 本文将介绍Solr查询中涉及到的Cache使用及相关的实现.Sol ...

  2. Storm编程入门API系列之Storm的Topology默认Workers、默认executors和默认tasks数目

    关于,storm的启动我这里不多说了. 见博客 storm的3节点集群详细启动步骤(非HA和HA)(图文详解) 建立stormDemo项目 Group Id :  zhouls.bigdata Art ...

  3. PHP 函数的参数

    函数的参数 通过参数列表可以传递信息到函数,即以逗号作为分隔符的表达式列表. PHP 支持按值传递参数(默认),通过引用传递参数以及默认参数.也支持可变数量的参数:更多信息请参照可变长度参数列表和涉及 ...

  4. java定时读取文件

    在项目中经常会用到定时器,在笔试或者面试中也会经常问到定时器和IO流. public class TimerDemo { public static void main(String[] args) ...

  5. Todolist总结

    一.组件类里面的函数尽可能写成箭头函数的形式,方便绑定this 上面的箭头函数是好的,写面的不好,他需要在用的时候绑定this,或者在constructor绑定,如下: 如上用的时候绑定this是不好 ...

  6. AFNetworking 一般用法

    AFNetworking是一个用于iOS.macOS.watchOS和tvOS的功能强大的网络库.它构建在基础URL加载系统之上,扩展了强大的高级网络抽象,并将其构建为Cocoa.它有一个模块化的架构 ...

  7. 安装AAA服务器遇到的问题

    安装升级AAA服务器的操作思路: 第一种:在原始服务器下更新升级安装包,实现升级: 第二种:重新安装最新版本的IOS,实现版本更新: 第一种方案更新AAS服务器ios 步骤1:copy软件更新包到li ...

  8. [jQuery] Cannot read property ‘msie’ of undefined错误的解决方法 --转

    初用Yii的srbac模块.出现 Cannot read property ‘msie’ of undefined 错误.上网查询,找到如下的文章.使用文末的打补丁的方法,成功搞定.感谢. ===== ...

  9. COGS 264. 数列操作

    时间限制:1 s   内存限制:160 MB [问题描述] 假设有一列数 {Ai }(1 ≤ i ≤ n) ,支持如下两种操作: (1)将 A k 的值加 D .( k, D 是输入的数) (2) 输 ...

  10. java中的堆与栈

    Java 中的堆和栈 Java把内存划分成两种:一种是栈内存,一种是堆内存. 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配 . 当在一段代码块定义一个变量时,Java就在栈中 ...