SSL Certificate Signed Using Weak Hashing Algorithm,使用弱哈希算法签名的 SSL 证书的解决方法,在docker下Nginx生成ssl证书https
SSL Certificate Signed Using Weak Hashing Algorithm,使用弱哈希算法签名的 SSL 证书的解决方法,在docker下Nginx生成ssl证书https协议
SSL Certificate Signed Using Weak Hashing Algorithm,使用弱哈希算法签名的 SSL 证书的解决方法
问题描述
远程服务使用通过密码弱哈希算法(例如 MD2、MD4、MD5 或 SHA1)签名的 SSL 证书链。已知这些签名算法容易遭受碰撞攻击。攻击者可利用此漏洞生成具有相同数字签名的其他证书,从而允许攻击者伪装成受影响的服务。
请注意,该插件将把 2017 年 1 月 1 日之后过期的所有 SHA-1 签名 SSL 证书链报告为漏洞。这符合 Google 逐渐汰换 SHA-1 加密哈希算法的做法。
请注意,已忽略 Nessus CA 数据库 (known_CA.inc) 包含的链中的证书。
说人话就是把http转为https
解决方案
联系证书颁发机构,请其重新颁发证书
流程步骤
一、配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块:–with-http_ssl_module
docker ps
进入docker下Nginx容器
或者docker exec -it 容器的name bash
查看nginx编译参数:nginx -V
如果没有红色框内:–with-http_gzip_static_module这个参数,需要重新编辑nginx
本人安装Nginx后就有这个参数,所以没有重新编辑
二、生产SSL证书
1、使用exit退出docker容器,然后安装openssl和openssl-devel
yum install openssl openssl-devel

2、进入Nginx文件夹的conf.d目录下(与default.conf同目录)

3、openssl genrsa -des3 -out server.key,需要你设置一个密码
4、创建csr证书,命令:openssl req -new -key server.key -out server.csr

地区,省份,城市,公司名和邮箱随便写,其他的直接回车
5、成功后可以看到多了两个文件

6、拷贝server.key并重命名为server.key.org
7、去除密码,命令:openssl rsa -in server.key.org -out server.key,输入刚刚设置的密码,回车
8、生成证书文件server.crt,命令:openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
(我申请的3650天也就是10年)

9、所有生成的文件如图

版权声明:以上文章为CSDN博主「Air锐」的原创文章,原文链接:点击蓝字去Air锐的页面查看全文
二、修改Nginx配置文件
vim default.conf
server{
listen 443 ssl;
server_name IP地址;
ssl_certificate certs/server.crt;#填写你的证书所在的位置
ssl_certificate_key certs/server.key;#填写你的key所在的位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!3DES:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server{
listen 9999 ssl;
server_name IP地址;
ssl_certificate certs/server.crt;#填写你的证书所在的位置
ssl_certificate_key certs/server.key;#填写你的key所在的位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!3DES:!aNULL:!eNULL;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:1m;
location /api/ {
proxy_pass http://IP地址:9999/;
}
}
三、到nginx文件夹下新建certs文件,把刚刚生成的crt文件和key文件放进去。

四、关闭原来的nginx并移除它,再重启nginx
docker ps -a
docker stop nginx的ID
docker rm nginx的ID
使用包含代理、certs路径的命令重启nginx
docker run -p 19999:9999 -p 8200:443 --restart=always -v /home/dsep/web_rp/:/usr/share/nginx/html/ -v /home/dsep/docker/nginx/certs:/etc/nginx/certs -v /home/dsep/docker/nginx_rp/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/dsep/docker/nginx_rp/conf/conf.d/default.conf:/etc/nginx/conf.d/default.conf --name nginx_rp -d nginx
其中对应关系为:19999对应9999 , 8200对应443
应用软件的前后端都在同一IP下
19999是代理了9999端口,8200代理了https的443端口
五、在前端config.js修改IP
BASE_URL: “https://IP:9999/api/”
重新登录系统,要把网址设置为:https://IP:8200/xxxx 就能登录了
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)