由于购买的是腾讯云服务器,可以申请免费证书。腾讯云Nginx安装证书过程,过程比较简单。
(1)将申请的证书 1_www.domain.com_bundle.crt 证书文件和 2_www.domain.com.key
放在 /usr/local/nginx/conf ,即放在自己nginx安装目录下的conf目录里面
(2) 修改nginx.conf文件
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name www.domain.com;
#证书文件名称
ssl_certificate 1_www.domain.com_bundle.crt;
#私钥文件名称
ssl_certificate_key 2_www.domain.com.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
root /var/www/www.domain.com;
index index.html index.htm;
}
}
以上时腾讯云的文档,安装这个操作,满以为就此搞定,但是使用 /usr/local/nginx/sbin/nginx -t 命令检查配置文件的时候,报出了如下错误:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:46
网上查询原因,原来是nginx缺少https模块。那么就安装此模块呗:
【1】先切换到nginx源码包目录
cd /usr/local/nginx//usr/local/nginx/nginx-1.10.2
[2]查看nginx原有的模快有哪些
/usr/local/nginx/sbin/nginx -V
在configure arguments:后面显示的原有的configure参数如下:
--prefix=/usr/local/nginx
我的里面什么都没有。
【3】我只需要https模块,那么配置信息应该为:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
【4】直接运行该命令,等配置完毕后,再次运行下面的make命令,注意不要make install ,不然就被覆盖安装了!
make
【5】然后备份下已经安装好的nginx,不怕一万就怕万一。
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
【6】然后将刚才安装好的nginx覆盖到原有的nginx(这个时候nginx应该是停止状态,如果停止不了,直接killall -9 nginx 吧),然后执行下面的命令,到这一步的时候,没有切换过目录,就怕有人去sbin里面停nginx,然后直接执行了下面的语句,然后不成功,bbb。
cp ./objs/nginx /usr/local/nginx/sbin/
【7】然后检查模块是否加入成功了
/usr/local/nginx/sbin/nginx -V
如果有http_ssl模块代表添加成功了,安装成功!