1.在自定义文件夹a下创建ssl文件夹并cd进去,执行openssl命令生成证书
openssl req -newkey rsa:2048 -nodes -keyout nexwise_rsq_private.key -x509 -days 730 -out nexwise_cert.crt -subj "/C=CN/ST=GD/L=SZ/O=vihoo/OU=dev/CN=192.168.60.199/emailAddress=111@111.com"
参数解释:req:
-x509:指定使用X.509证书签名
-nodes; 忽略密码,要实现nginx自动读取这个文件
-days:证书有效期,天为单位
-newkey rsa:2048:同时生成证书和sslkey (加密强度为RSA 2048)
-keyout SSL文件名
-out 证书文件名
-subj 自定义证书信息(参数名大写) (CN为ip或者域名,emailAddress为邮箱地址)以上参数根据实际需要去填写
执行命令后在该文件夹下生成*.key、*.crt文件,ls确认一下
2.将证书所在目录,挂载到容器内部目录下,添加 - ./debug/gateway-service/ssl:/etc/nginx/ssl
把ssl的证书文件挂载到nginx容器内部
3.重新构建docker容器,使用up -d
4.构建完先登录确认系统是否可用
5.修改nginx.conf文件
修改server内的部分内容,修改完后:wq保存
sever{
listen 20000 ssl;
server_name 服务器IP(192.168.60.156);
#server_name _;
#以下路径为容器内部的路径
ssl_certificate /etc/nginx/ssl/nexwise_cert.crt;
ssl_certificate_key /etc/nginx/ssl/nexwise_rsq_private.key
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
#调优
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;
ssl_prefer_server_ciphers on;
}
6.重新构建docker容器,使用restart即可
7.docker容器重启后查看一下网关nginx的日志,同时清除浏览器缓存,访问系统登录页,请求路径由http://{ip}:{port}变为https://{ip}:{port}
因为证书有效性的问题,浏览器第一次访问这个网站会提示不安全,确认继续访问即可。登录上去简单测试一下功能,若没问题则是http升级成功。