CentOs 7.2 通过Nginx安装、配置SSL证书

时间:2024-03-18 11:48:16

1、下载ssl证书

如下图,在阿里云搜索ssl证书,进入控制台下载已签发的ssl证书,这里选择Nginx版本的证书。

CentOs 7.2 通过Nginx安装、配置SSL证书

下载到本地的为压缩文件,解压后,里面包含两个文件,分别为:

.pem文件:是证书文件。

.key文件:证书的私钥文件。

 2、上传ssl证书

利用FTP服务器,解压好的两个文件上传到 linux 服务器上面。(不知道怎么使用ftp服务器的,可以参照我前面写的文章进行安装配置https://mp.csdn.net/postedit/88070725

3、通过Nginx安装配置 ssl 证书

(1)进入nginx安装目录

cd /usr/local/nginx/

(2)创建一个cert目录,用于存放ssl证书文件

mkdir cert

 (3)将上传的 两个 ssl 文件拷贝到新建的目录中(xxx改成自己证书的名称即可)

cp /home/fpFtp/xxx.pem /usr/local/nginx/cert/
cp /home/fpFtp/xxx.key /usr/local/nginx/cert/

4、修改nginx配置,使 ssl 证书生效

(1) 输入以下命令,打开nginx配置文件

vim conf/nginx.conf

 找到 HTTPS server 的配置,如下

CentOs 7.2 通过Nginx安装、配置SSL证书

(2)然后输入“ i ”进入编辑模式,将上面的配置的注释打开(去掉前面的 “#” 号),修改为如下内容(具体配置需要根据各自的实际情况修改)

#HTTPS server
    
server {
	listen 443; # 监听端口为443
	server_name xxx.com; # 这里改成你自己的服务器域名或者公网IP

	ssl on; # 开启ssl
	root html;
	index index.html index.htm;

	ssl_certificate      /usr/local/nginx/cert/xxx.pem; # 将xxx改成你自己的ssl证书的名称
	ssl_certificate_key  /usr/local/nginx/cert/xxx.key; # 将xxx改成你自己的ssl私钥的名称

	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; # 指定密码为openssl支持的格式
	ssl_prefer_server_ciphers on; # 依赖SSLv3和TLSv1协议的服务器密码将优先于客户端密码

	location / {
		root   html; # 根目录的相对位置
		index  index.html index.htm;
	}
}

(3)限制服务器只能通过 https 协议访问(此步骤非必须,视各自情况而定)

 找到 HTTP server 的配置,如下

CentOs 7.2 通过Nginx安装、配置SSL证书

在 配置中加多一项配置如下

rewrite ^(.*)$  https://$host$1 permanent; # 将80端口重定向到443

修改后如下,将访问80端口的请求全部重定向到443端口

CentOs 7.2 通过Nginx安装、配置SSL证书 

修改完按 ESC键,然后输入 :wq 保存配置并退出。 

5、重启nginx

(1)执行以下命令,重启nginx

./sbin/nginx -s reload

(2)通过https://xxx.com 访问,测试ssl证书是否生效(注意,服务器有设置安全组的,记得把443端口打开才能访问)。至此,SSL证书就安装配置完成了。