nginx之又一次配置https

阿里云购买证书(按需购买)
这次买的是类型为专业版OV ssl、品牌GeoTrust,、多个域名
邮件提醒:
选择验证方式:

1、DNS验证,在域名解析控制台中添加一条txt解析记录
2、文件验证,需要保存txt文本文件,在web服务器站点下创建隐藏目录,最后访问链接可以看到内容即可

emmm,我当然是选择了添加DNS验证,收到记录值后:

控制台中找到云解析DNS,对购买的域名进行解析配置,配置与反馈的邮件内容一致

再次等待,直至开通成功,在云盾证书服务控制台,选择下载,选择服务器类型,此处我需要配置nginx

在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为a.key;

根据需要在.conf文件中添加或更改配置:

  server {
     listen 443;
     server_name xxx.com www.xxx.com; 		# 需要配置的域名
     ssl on;
     root xxx;			# 自己的项目位置
     index index.html index.htm;
     ssl_certificate   cert/a.pem;		# 放置的.pem文件的位置
     ssl_certificate_key  cert/a.key;	# 放置的.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 / {
         root html;
         index index.html index.htm;
     }
    }

配置完成后,运行:

/usr/local/ninx/sbin/nginx -t

返回错误,nginx: [emerg] unknown directive "ssl"
说明需要编译ssl模块(完成后一定要记得关闭再重新打开,我没有这样做绕了很大的弯。。
查看nginx编译安装时的命令,安装了哪些模块和nginx版本

/usr/local/nginx/sbin/nginx -V

会显示如下信息:

nginx version: nginx/1.7.7
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) 
configure arguments: 

在nginx解压目录下执行

cd /usr/local/nginx-1.1.10
./config --with-http_ssl_module

前提是已经安装好了openssl,
然后使用命令

make

切勿 make install, 会覆盖安装目录
将原来 nginx 备份

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

将新的 nginx 覆盖旧安装目录

cp objs/nginx /usr/local/nginx/sbin/nginx

如报错:cannot create regular file,可将nginx关闭后再次运行该命令,或执行cp -rfp objs/nginx /usr/local/nginx/sbin/nginx

再次测试nginx是否正确 /usr/local/ninx/sbin/nginx -t
然后重启 /usr/local/nginx/sbin/nginx -s reload

兴冲冲的去访问https://www.xxx.com,,无响应!

回来监测一下443端口:lsof -i:443 没有,开始测试,将server中的配置的ssl_certificate 路径改错,测试nginx有报错,证明的确执行到了这个server里。
再去看一下是不是有防火墙的关系
iptables -L -n 返回如图:
在这里插入图片描述nginx -t也的确没有错误信息啊,忽然像起来最初入行查错时大神问我的话,log日志有报错吗
嘤········
查看nginx下的logs,发现:
在这里插入图片描述缺少http_ssl_module模块?!!!命名不是添加过了吗,再次查看现在已安装的模块

nginx version: nginx/1.7.7
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) 
configure arguments:  --with-http_ssl_module

添加成功了呀,emmm,好久以后拿着死马当活马医的心态,我关闭了nginx /usr/local/nginx/sbin/nginx stop 再重新打开 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
啧啧啧,报错信息没有了,再次访问网址,成功请求。

额,还有一个插曲no "ssl_certificate" is defined,我配置中是有的呀,为啥类,定睛一看,上一行的index后丢了分号;,啊!温柔!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值