阿里云服务器 Linux centos7 下Nginx配置HTTPS安全证书 笔记

1.登陆阿里云服务器控制台,找到安全---ssl证书---购买证书---申请

购买证书只填写域名和手机号就可以,其他默认就行

申请后一般五分钟左右就会通过,当然前提是你有域名,并且域名已备案,申请通过如下图

阿里云服务器 Linux centos7 下Nginx配置HTTPS安全证书 笔记

通过后根据需要下载证书,我选择的是nginx,点击下载弹出如下图自行选择

阿里云服务器 Linux centos7 下Nginx配置HTTPS安全证书 笔记

2.配置Nginx,打开nginx.conf文件 根据 阿里提供的帮助文件进行配置

阿里云服务器 Linux centos7 下Nginx配置HTTPS安全证书 笔记

server {
 listen 443;
 server_name localhost;
 ssl on;
 root html;
 index index.html index.htm;
 ssl_certificate   cert/a.pem;  # 这里修改为你的文件名
 ssl_certificate_key  cert/a.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;
 }
}

之前的80端口给其做个跳转

server {
    listen 8086;
    server_name xxx.com;  # 这里修改为网站域名,就是你申请时的域名
    rewrite ^(.*)$ https://$host$1 permanent;
}

补充:项目存在需求 ----- 因为项目前后端分离 Vue+springboot  前后端分开打包部署

采用https时需要如下配置才能访问到服务器后端

server {
        listen 443;

        server_name 申请证书时的域名;

        ssl on;

	charset utf-8;

        root /home/; #前端项目存放地址

        index index.html index.htm;

        ssl_certificate   xxx.pem;

        ssl_certificate_key  xxxx.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 /propertyServiceAPI{ # vue跨域时配置的代理地址名称
		proxy_pass http://服务器的域名:9093/; # 代理接口地址   
                        # 在此记录下我的前后端部署在同一台阿里云服务器上 用ip地址时无法访问
		}

	location /fileAPI{
		proxy_pass http://服务器的域名:9091/; # 代理接口地址
		}
     }
}

 

3.配置完成后保存,然后重启nginx

重启之前要在控制台-----安全组中把443端口和80端口开放出来

以下记录错误:

一,重启失败,报错  nginx:[emerg]unknown directive ssl 。。。

错误解决办法:

在nginx安装目录下
1   ./configure --with-http_ssl_module
2    make
3    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
4    cp objs/nginx /usr/local/nginx/sbin/nginx
5    ./sbin/nginx -V

第一步是安装ssl模块

第二步重新编译  编译后会在objs目录下产生一个nginx文件

第三步复制sbin下的nginx文件

第四步复制编译后的nginx新文件到sbin下 覆盖原nginx文件

第五步查看是否有安装ssl模块成功

二. ssl证书找不到错误  Stoping nginx... nginx: [emerg] BIO_new_file("/cert/xxxxxxxx.pem") faile

根据阿里帮助提示安装证书找不到

解决办法:

将证书文件放到nginx.conf所在的目录下 ,然后修改路劲  去掉cert