一、之前在其他博客看到:配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块:--with-http_ssl_module
进入docker下Nginx容器
docker exec -it 容器ID /bin/bash
或者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、所有生成的文件如图
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访问