赞
踩
在阿里云购买了域名后,可以免费申请SSL证书,该证书是绑定域名的
阿里云申请免费SSL证书,下载后 解压后有2个文件 xxx.key , xxx.pem
在 nginx/conf 目录下新建 cert,将上面2个文件放入cert ,vi 打开 配置文件
注意:云服务器开启 80 和 443 端口权限,默认是关闭的
下面的server_name 内容的 yourdomain.com 替换你的 域名
下面的xxx替换你自己的内容
注意:配置https时 server_name 一定要设置证书绑定的域名,访问https时用域名去访问,不要用ip地址直接访问,否则https无效
https默认端口 即访问https时不写端口默认访问443
注意:云服务器安全组开放443端口权限
# HTTPS server server { listen 443 ssl; #配置HTTPS的默认访问端口为443。 #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。 #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。 server_name *.yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。 root /opt/www_80/xxx; # index index.html index.htm; ssl_certificate cert/xxx.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。 ssl_certificate_key cert/xxx.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型 ssl_prefer_server_ciphers on; location / { # root html; index index.html index.htm; } }
注意:云服务器安全组开放443和80端口权限
server {
listen 80;
server_name *.yourdomain.com;
rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
}
注意:云服务器安全组开放18080 和 8082端口权限
#HTTPS server server { listen 18080 ssl; server_name *.yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。 ssl_certificate cert/xxx.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。 ssl_certificate_key cert/xxx.key; #需要将cert-file-name.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; #表示使用的TLS协议的类型 ssl_prefer_server_ciphers on; location / { # 转发到 http 服务器中 proxy_pass http://localhost:8082; #proxy_redirect http:// https://; #add_header Cache-Control no-store; #proxy_set_header Host $host; #proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
注意:访问时一定要用域名+端口访问,因为证书是绑定了域名的,如果不用域名而是直接用ip当我这个端口,会报安全异常警告的,说白了就是没用上证书,如下:
上面这个配置重启nginx后,浏览器访问 https://www.yourdomain.com:18080/test 会转发给域名地址内部的http 8080端口
注意:云服务器安全组开放80端口权限
server {
listen 80;
server_name *.yourdomain.com;
root /opt/www_80/xxx;
location / {
index index.html index.htm;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。