OpennSSL之基本了解
阅读原文时间:2023年07月10日阅读:2

HTTPS是一种协议,等于HTTP+TLS(由于历史原因,SSL3.0之后就被TLS1.0替代了)。
openssl是一套开源工具集,主要有两个特性:

没有一个非常精准的方法来判断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