介绍:
使用阿里云服务器,项目要求使用https也能访问网站,考虑到项目可能会有多个容器需要跑,每个都配置比较麻烦,也影响团队开发效率,刚好项目用的是nginx作为代理服务,这样为nginx配置了,项目访问也可以做到https了。
步骤:
1.获取证书
发现阿里云有免费证书,我们选择了阿里云免费证书
右上角点击购买,购买完成后前往证书列表补全,然后等待审核
接下来审核通过后下载证书,选择nginx证书解压出来后如下图两个文件
2.配置nginx
2.1 在证书信息补全中,填写的域名要已经解析指向当前nginx服务器
2.2 nginx安装又加入ssl模块,前往nginx安装目录查看./sbin/nginx -V
2.3 上传证书文件,上传后文件名我改为cert.key,cert.pem,上传到nginx安装目录的/cert
文件下
2.4编辑nginx配置文件, 假设生产服务运行在和nginx同一台主机,端口是8080
#user nobody;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 120;
#转向服务地址配置
upstream my_service{
server 127.0.0.1:8080;
}
#http访问时重载成https
server {
listen 80;
server_name yourdomain;#需要修改成自己的域名
rewrite ^(.*) https://$server_name$1 permanent;
}
# HTTPS配置
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /usr/local/nginx/cert/cert.pem;
ssl_certificate_key /usr/local/nginx/cert/cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #指定SSL服务器端支持的协议版本
#ssl_ciphers HIGH:!aNULL:!MD5;
#ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #指定加密算法
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on; #在使用SSLv3和TLS协议时指定服务器的加密算法要优先于客户端的加密算法
location / {
proxy_pass http://my_service;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
}
3.重新加载nginx
去nginx安装目录:./sbin/nginx -s reload
4.打开浏览器输入域名访问验证