1、创建目录
证书相关文件放到cert中,配置文件放到conf中,前端文件放到html中
mkdir -p /usr/local/nginx/{conf,logs,html,cert}
2、Nginx证书相关配置
server {
listen 443 ssl;
server_name www.xxx.com; #用户服务器的域名
ssl_certificate cert/xxx.crt;
ssl_certificate_key cert/xxx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5; #加密套件。
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html/myblog;
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
配置SSL证书相关参数说明
参数 | 参数说明 |
---|---|
listen | SSL访问端口号,设置为“443”。 配置HTTPS的默认访问端口为443。如果未配置HTTPS的默认访问端口,可能会导致Nginx无法启动。 |
server_name | 证书绑定的域名。示例:www.xxx.com |
ssl_certificate | 证书文件“server.crt”。 设置为“server.crt”文件的路径,且路径中不能包含中文字符,例如“cert/server.crt”。 |
ssl_certificate_key | 私钥文件“server.key”。 设置为“server.key”的路径,且路径中不能包含中文字符,例如“cert/server.key”。 |
配置http强制转到https
server {
listen 80;
server_name www.xxx.com; #需要将www.xxx.com替换成证书绑定的域名。
rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
}
3、Docker部署Nginx
docker run --name nginx -d -p 80:80 -p 443:443 -v /usr/local/nginx/html:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/log:/var/log/nginx -v /usr/local/nginx/cert/:/etc/nginx/cert/ --privileged=true nginx
4、效果验证
部署成功后,可在浏览器的地址栏中输入“https://域名”,按“Enter”,或者也可以“http://域名”(会转到“https://域名”)
如果浏览器地址栏显示安全锁标识,则说明证书安装成功。