讲这篇文字的前提是我已经有Nginx服务器,并且官网可以成功的访问我的页面。如果您没有成功部署服务器,还请先阅读前端部署远程服务器。
在腾讯云的文档模块中搜索SSL,选择域名型(DV)免费SSL证书,按文档中的提示申请一个申请免费证书。申请完之后,在证书管理页面点击证书后面的详情,进入详情之后会有一个指引文档,根据指引文档中的内容就可以进入Nginx 服务器证书安装文档(或者直接在文档模块中搜索Nginx 服务器证书安装),根据Nginx 服务器证书安装文档中的内容就可以配置SSL证书,但是在配置过程中会可能遇到报错。
1、 执行./sbin/nginx -t
目录之后报了如下错:
nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:39
nginx: configuration file /usr/local/nginx/conf/nginx.conf test failed
这里可能是如下两个问题造成的:
a、没有安装OpenSSL
b、安装了OpenSS,但是安装Nginx的时候,没有配置ssl环境
解决办法
执行命令rpm -qa openssl
或whereis openssl
查看是否有安装 OpenSSL ,如果没有安装那就得去安装(前端部署远程服务器中有安装步骤),如果有那就说明安装Nginx的时候,没有配置ssl环境。然后进入nginx解压目录(我的是 /root/nginx/nginx-1.16.1),执行如下命令:
./configure --with-http_ssl_module
make # 不要执行make instal 会覆盖
执行命令 cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
把原来的 nginx 备份。
在 nginx 解压目录执行命令cp objs/nginx /usr/local/nginx/sbin/nginx
用新的nginx覆盖旧的。
命令行可能会出现如下提问:
cp: overwrite ‘/usr/local/nginx/sbin/nginx’?
这是在询问你是否执行,这时要输入 y 或 yes。
如果出现如下报错:
cp: cannot create regular file ‘/usr/local/nginx/sbin/nginx’: Text file busy``
这时用cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
命令解决。
最后输入/usr/local/nginx/sbin/nginx -t
命令,测试一下。
如果在测试之后出现如下提示:
nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /usr/local/nginx/conf/nginx.conf:39
解决方法:nginx1.15后的版本不需要配置 ssl on了,在 /usr/local/nginx/conf 目录的 nginx.conf 配置文件中吧 ssl on 这一行删除掉,再次进行测试一下。
然后重启。