在docker下Nginx生成ssl证书https协议

时间:2024-03-29 08:20:49

 

一、之前在其他博客看到:配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块:--with-http_ssl_module

进入docker下Nginx容器

docker exec -it 容器ID /bin/bash

或者docker exec -it 容器的name bash

在docker下Nginx生成ssl证书https协议

查看nginx编译参数:nginx -V

在docker下Nginx生成ssl证书https协议

如果没有--with-http_gzip_static_module这个参数,需要重新编辑nginx

本人安装Nginx后就有这个参数,所以没有重新编辑

二、生产SSL证书

1、使用exit退出docker容器,然后安装openssl和openssl-devel

yum install openssl openssl-devel 

在docker下Nginx生成ssl证书https协议

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

在docker下Nginx生成ssl证书https协议

3、openssl genrsa -des3 -out server.key,需要你设置一个密码

在docker下Nginx生成ssl证书https协议

4、创建csr证书,命令:openssl req -new -key server.key -out server.csr

在docker下Nginx生成ssl证书https协议

地区,省份,城市,公司名和邮箱随便写,其他的直接回车

5、成功后可以看到多了两个文件

在docker下Nginx生成ssl证书https协议

6、拷贝server.key并重命名为server.key.org

在docker下Nginx生成ssl证书https协议

7、去除密码,命令:openssl rsa -in server.key.org -out server.key

在docker下Nginx生成ssl证书https协议

8、生成证书文件server.crt,命令:openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

(我申请的3650天也就是10年)

在docker下Nginx生成ssl证书https协议

9、所有生成的文件如图

在docker下Nginx生成ssl证书https协议

10、修改Nginx配置文件,加载ssl证书

vim default.cof

找到server{},在其中添加以下配置:

server{

    listen 443 ssl default_server;

    ssl_certificate /etc/nginx/conf.d/server.crt;#填写你的证书所在的位置

    ssl_certificate_key /etc/nginx/conf.d/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   html; #根据自己项目实际情况修改
        index  index.html index.htm;
    }    

}

:wq!#保存退出

11、开通443端口后就可使用https访问

在docker下Nginx生成ssl证书https协议

在docker下Nginx生成ssl证书https协议