证书名称以cloud.tencent.com
为例子。
Nginx 版本以 nginx/1.14.0
为例。
当前服务器的操作系统为 CentOS 7.6,由于操作系统的版本不同,详细操作步骤略有区别。
安装 SSL 证书前,请您在服务器上开启 “443” 端口,避免证书安装后无法启用 HTTPS。
如果是腾讯云服务器,可以通过安全组开放443等常用端口。具体请查看https://cloud.tencent.com/document/product/213/39738。
本次操作使用服务器为腾讯云服务器,操作前请确认使用root用户登录。
[root@VM-12-2-centos ~]#
请在 SSL 证书管理控制台 中选择您需要安装的证书并单击下载。
在弹出的 “证书下载” 窗口中,服务器类型选择Nginx,单击下载并解压缩cloud.tencent.com
证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。其中包含cloud.tencent.com_nginx
文件夹:
文件夹名称:cloud.tencent.com_nginx
文件夹内容
cloud.tencent.com_bundle.crt
证书文件cloud.tencent.com_bundle.pem
证书文件(可忽略该文件)cloud.tencent.com.key
私钥文件说明:CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。
使用MobaXterm_Personal与服务器进行SSH连接。
将已获取到的 cloud.tencent.com_bundle.crt
证书文件和 cloud.tencent.com.key
私钥文件从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx/conf
目录(此处为 Nginx 默认安装目录,请根据实际情况操作)下。
修改nginx的配置文件nginx.conf。
[root@VM-12-2-centos ~]# vim /usr/local/nginx/conf/nginx.conf
server { #SSL 访问端口号为 443 ssl on; listen 443; #填写绑定证书的域名 server_name cloud.tencent.com; #证书文件名称 ssl_certificate cloud.tencent.com_bundle.crt; #私钥文件名称 ssl_certificate_key cloud.tencent.com.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1.2 TLSv1.3; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 #例如,您的网站运行目录在/etc/www下,则填写/etc/www。 root html; index index.html index.htm; } }
说明: 由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。
在 Nginx 根目录下,通过执行以下命令验证配置文件问题。(nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful)出现表示成功。
[root@VM-12-2-centos ~]# cd /usr/local/nginx [root@VM-12-2-centos nginx]# ./sbin/nginx -t
若存在问题,请您重新配置或者根据提示修改存在问题。
若不存在,请执行步骤7.
重启 Nginx,即可使用 https://cloud.tencent.com
进行访问。
[root@VM-12-2-centos ~]# /usr/local/nginx/sbin/nginx -s reload
问题解决方案来自:https://blog.csdn.net/weixin_34390105/article/details/92405829
故障:出现nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/vhost/ssl.conf:7
解决办法:
1.到解压的nginx目录下(是指最开始解压的文件,到该目录下有configure)。
[root@VM-12-2-centos ~]# cd /usr/local/nginx-1.14.0/ [root@VM-12-2-centos nginx-1.14.0]# ./configure --with-http_ssl_module
如果已经被删除就重新下载对应版本的Nginx
Nginx下载地址: https://nginx.org/en/download.html 先切换换导local目录下:cd /usr/local 下载1.14.0为例:wget https://nginx.org/download/nginx-1.14.0.tar.gz 解压命令:tar -zxvf nginx-1.14.0.tar.gz 进入nginx目录: cd nginx-1.14.0/ 再执行命令:./configure --with-http_ssl_module
2.当执行上面语句,出现./configure: error: SSL modules require the OpenSSL library,如果没有请跳过该步骤。
[root@VM-12-2-centos nginx-1.14.0]# yum -y install openssl openssl-devel [root@VM-12-2-centos nginx-1.14.0]# ./configure [root@VM-12-2-centos nginx-1.14.0]# ./configure --with-http_ssl_module
3.执行make ,切记不能make install 会覆盖。
[root@VM-12-2-centos nginx-1.14.0]# make
4.把原来nginx备份,把新的nginx覆盖旧的。
[root@VM-12-2-centos nginx-1.14.0]# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak [root@VM-12-2-centos nginx-1.14.0]# cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
5.测试nginx是否正确
[root@VM-12-2-centos nginx-1.14.0]# /usr/local/nginx/sbin/nginx -t
(nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful)出现表示成功。
6.重启nginx,即可使用 https://cloud.tencent.com
进行访问。
[root@VM-12-2-centos nginx-1.14.0]# /usr/local/nginx/sbin/nginx -s reload
可参考:https://www.cnblogs.com/larrydpk/p/12819231.html
主要是修改nginx的配置文件nginx.conf。
[root@VM-12-2-centos ~]# vim /usr/local/nginx/conf/nginx.conf
server { #SSL 访问端口号为 443 ssl on; listen 443; #填写绑定证书的域名 server_name cloud.tencent.com; #证书文件名称 ssl_certificate cloud.tencent.com_bundle.crt; #私钥文件名称 ssl_certificate_key cloud.tencent.com.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1.2 TLSv1.3; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 #例如,您的网站运行目录在/etc/www下,则填写/etc/www。 root html; index index.html index.htm; } } server { listen 80; #填写绑定证书的域名 server_name cloud.tencent.com; #把http的域名请求转成https return 301 https://$host$request_uri; }
Nginx 支持 rewrite 功能,所以也可以使用:
#把http的域名请求转成https # return 301 https://$host$request_uri; rewrite ^(.*)$ https://$host$1 permanent;