openSSL下载
https://slproweb.com/products/Win32OpenSSL.html
1_整体流程
(1)https介绍
HTTPS 是 Hypertext Transfer Protocol Secure 的简称,是基于 SSL 加密方式的 HTTP 协议
(2)CA机构介绍
介绍:CA机构是SSL证书认证或者说颁发机构,但是CA机构并不是只此一家,只要有相应的算法,每个人都可以做CA机构,但是只有公信力或者说权威性得到广大用户认可的CA机构颁发的证书在浏览器中才会被认可,不被认可的机构颁发的ssl证书会在浏览器中提示“不被信任的链接”。
生成CA机构:使用openssl工具里面的开源算法生成私钥key和公钥csr,然后再生成证书即可crt
(3)生成自签名证书流程
生成SSL的私钥key和公钥csr,然后把公钥给ca机构,使用ca机构的证书进行认证并生成SSL证书crt
2_代码
生成ssl私钥
openssl genrsa -des3 -out server.key
生成ssl公钥
openssl.exe req -new -key server.key -out pub.csr
生成ca公钥
req -new -key myca.key -out myca.csr
生成ca根证书
x509 -req -in myca.csr -extensions v3_ca -signkey myca.key -out myca.crt
使用ca跟证书给ssl签名并生成ssl证书
x509 -days 1095 -req -in pub.csr -extensions v3_req -CAkey myca.key -CA myca.crt -CAcreateserial -out server.crt
配置nginx
server {
listen 8926;
server_name perstest.hebut.edu.cn;
ssl_certificate /data/ca_and_ssl/server.crt
ssl_certificate_key /data/ca_and_ssl/server.key
location /{
root /usr/jibei-html-dist;
index index.html index.htm;
}
3_ 遇到的问题
启动nginx报错nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:152
原因:安装nginx的时候没有安装ssl模块
解决办法:https://blog.csdn.net/qq_27164017/article/details/135653135?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-135653135-blog-95622649.235%5Ev43%5Econtrol&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-135653135-blog-95622649.235%5Ev43%5Econtrol
安装openssl在linux中:yum install openssl-devel -y
如果nginx没有ssl模块的话需要重装
解压nginx安装包进入目录执行命令:./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
配置完nginx之后启动不起来对应的端口
报错SSL: error:0906406D:PEM routines:PEM_def_callback:problems getting password error:0906A068:PEM routines:PEM_do_header:bad password read
查询得知nginx不支持输入密码访问ssl秘钥,所以需要生成一个没有密码就能访问的秘钥
mv server.key server_pass.key
openssl rsa -in server_pass.key -out server.key
https://www.dell.com/support/kbdoc/zh-tw/000208401/data-protection-search-dpsearch-nginx-service-fail-to-start-after-installing-new-ssl-certificate
4_其他方式
https://www.cnblogs.com/littleatp/p/5922362.html