网站http转https
ssl证书
域名证书有分单域名证书和泛域名证书
单域名:a.xxx.com b.xxx.com 这里就需要两个单域名证书去认证
泛域名:*.xxx.com 只要是xxx.com的域名都可以用同一个泛域名证书去认证
生成证书
方法一:购买,可以向各大云服务商购买
方法二:自建(openssl和certboot,网上教程很多,这里就不做说明)
openssl:(使用openssl自建ssl证书),网站依旧有不安全提示
certboot获取免费证书
nginx配置
server {
listen 443;
ssl on;
server_name a.xxx.com;
ssl_certificate xxx-server.crt;
ssl_certificate_key xxx-server.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
// 以下是压缩配置 可选
gzip on;
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_types text/plain application/json application/x-javascript application/css application/xml application/xml+rss text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-ms-bmp;
location / {
proxy_pass http://ip:port;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 600;
}
}
如果需要自动将http转成https,则添加以下配置
server {
listen 80;
server_name a.xxx.com;
rewrite ^(.*) https://a.xxx.com;
}
ws转wss,如果有使用websocket的话,也需要将ws转成wss,如果使用泛域名证书,则可以使用同一个证书认证,否则需要用不同的证书认证,单域名证书ws认证nginx配置也是和上面更换域名和对于proxy_pass对应的内容,剩余的一致即可。