openssl笔记

 

 


环境变量: C:\OpenSSL-Win64;C:\OpenSSL-Win64\bin;

https://slproweb.com/products/Win32OpenSSL.html //openssl win版下载地址
http://nginx.org/en/download.html //nginx win版下载

C:\Users\Administrator>openssl s_client -connect www.baidu.com:443 -showcerts //openssl作为客户端访问服务器,拿到所有证书链的证书

C:\Users\Administrator>openssl s_client -connect www.baidu.com:443 //只拿到服务器证书

 

openssl x509 -in baidu.pem //利用openssl查看pem格式的证书

openssl x509 -in baidu.pem -text -noout //利用openssl查看pem格式的证书,并以text的格式查看,此种方式看到信息更多

openssl x509 -in baidu.crt -out baidu.pem  //格式转换,crt转pem。

 

 

制作证书的流程:

1.非对称密钥的生成
>openssl genrsa -out rsa.key 2048 //生成rsa私钥,X509编码,2048位
>openssl rsa -text -in rsa.key //以结构体查看上面生成的私钥
>openssl rsa -in rsa.key -pubout -out rsa-public.key //使用上面的私钥生成对应的公钥


>openssl dsaparam -genkey 2048 | openssl dsa -out dsa.key //生成DSA证书,注意“|”
>openssl ecparam -genkey -name secp256r1 | openssl ec -out ec.key //生成ecdsa证书


2.如何生成CSR文件?以使用rsa.key为例 //CSR文件里有公钥和其他信息(国家,省,市,公司,网址,等信息)
C:\OpenSSL-Win64\selfsign>openssl req -new -key rsa.key -out rsa.csr //如果要生成ecdsa的csr文件,这里的key换成ecdsa.key 即可
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:AD //开始键入信息,[]表示可以不输,直接回车
State or Province Name (full name) [Some-State]:AD
Locality Name (eg, city) []:AD
Organization Name (eg, company) [Internet Widgits Pty Ltd]:AD
Organizational Unit Name (eg, section) []:AD
Common Name (e.g. server FQDN or YOUR name) []:www.benben.com // 这里输网址
Email Address []:489367331@qq.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

C:\OpenSSL-Win64\selfsign>

如何查看别人的csr文件?
>openssl req -text -in rsa.csr -noout //-noout 表示不输出原来的base64位的字符串

3.制作好csr文件后如何签名? //Win版本下,.cer和.der都能识别
C:\OpenSSL-Win64\selfsign>openssl x509 -req -days 365 -in rsa.csr -signkey rsa.key -out rsa_changtao.cer // 用rsa.key私钥来签名,得到的rsa_changtao.cer是base64编码
Signature ok
subject=/C=AD/ST=AD/L=AD/O=AD/OU=AD/CN=www.benben.com/emailAddress=489367331@qq
com
Getting Private key


证书的格式:
1.der和cer都是证书显示在windows的原始格式。都是调用winsow系统的证书查看器打开的。.cer/.der可以通过重命名转换。 .cer默认用证书查看器打开。
2.pem 格式是把der二进制格式进行base64位编码后生成的证书。pem也是64位编码的。pem 和base64位的der文件内容是一样的。是apache或者ngix保存证书的格式(为了保证证书可读)
3.notepad++可以打开64位编码的pem/cer/der证书。

证书格式的转换:
1. openssl x509 -inform PEM -in **.pem -outform DER -out ***.der         //pem 转 der 转换后的der是base64位编码的
2. openssl x509 -inform DER -in **.der -outform PEM -out ***.pem         //der 转 pem

3.openssl x509 -in baidu.crt -out baidu.pem                                          //格式转换,crt转pem。

 

window下nginx环境的搭建
1.http://nginx.org/en/download.html //nginx win版下载,下载好安装并运行nginx.exe,浏览器访问http://127.0.0.1 ,看是否访问成功
2. 编辑C:\Users\Administrator\Downloads\nginx-1.19.0\conf\nginx.conf,取消注释,如下
# HTTPS server
#
server {
listen 443 ssl;
server_name localhost;

ssl_certificate rsa_changtao.pem; //这里是证书路径,pem格式,可以放在C:\Users\Administrator\Downloads\nginx-1.19.0\conf\下
ssl_certificate_key rsa.key; //这里是该证书的私钥,可以放在C:\Users\Administrator\Downloads\nginx-1.19.0\conf\下

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location / {
root html;
index index.html index.htm;
}
}

}

3.修改后在命令行运行nginx.exe程序
4.浏览器方位https://127.0.0.1 //正确的话会弹出安全链接提示,表示搭建成功

上一篇:jsencrypt加密和解密的那点事


下一篇:Ubuntu通过node.js搭建https服务demo(附Error: 0906D06C:PEM routines:PEM_read_bio:no start line解决过程及腾讯云证书申请过程)