一、问题描述
我这用nginx配置了ssl,配置好之后,通过https就访问不了了,没配置之后,还好好的。
二、解决方法
1.确定还没配置前http的能正常访问-【排除nginx的问题】
2.检查nginx是否安装ssl模块
进入到目录的sbin目录下,输入
#注意这里是大写的V,小写的只显示版本号
./nginx -V
如果有–with-http_ssl_module,说明已安装了ssl模块,否则从新编译安装ssl模块。
3.检测防火墙是否开启,如果开启是否开放了相应的端口。
4.配置证书并重启nginx后无法访问了-【配置文件有问题】。
5.检查阿里云的安全组那里是否开启443端口允许访问。
基本上就上面这几种问题,绝大多数都出在4,5这两点。我这就出在第三点,配置文件检查了几篇,没啥问题,通过nginx -t,返回的也是正确的,重启之后通过https就是访问不了,最后反复比对配置,查出来问题,官方这里讲了nginx如何配置ssl:https://help.aliyun.com/document_detail/98728.html?spm=5176.14113079.help.6.4b3b56a7ZRm3O0
关键配置如下:
server {
listen 80;
server_name www.xxx.com;
location / {
proxy_pass http://127.0.0.1:8087; # 转发规则
proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 443 ssl;#监听https 443时需加ssl
server_name www.xxx.com; #你的域名
ssl_certificate ../cert/5947977_www.xxx.com.pem;
ssl_certificate_key ../cert/5947977_www.xxx.com.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;
location / {
proxy_pass http://127.0.0.1:8087;
}
}
我就在配置443这里出了问题,我刚开始没有在443后面加ssl,死活访问不了,后面加上重启一下就行了。。