1.登陆阿里云服务器控制台,找到安全---ssl证书---购买证书---申请
购买证书只填写域名和手机号就可以,其他默认就行
申请后一般五分钟左右就会通过,当然前提是你有域名,并且域名已备案,申请通过如下图
通过后根据需要下载证书,我选择的是nginx,点击下载弹出如下图自行选择
2.配置Nginx,打开nginx.conf文件 根据 阿里提供的帮助文件进行配置
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模块成功
cp: cannot create regular file ‘/usr/local/nginx/sbin/nginx’: Text file busy
在执行上述步骤时,出现文件忙不能覆盖时,解决办法:
1、可能nginx在运行中,此时停掉nginx再次覆盖就可以
2、直接进入文件目录 执行 rm -rf nginx ,删除文件后再次执行
3、直接执行 cp -rfp objs/nginx /usr/local/nginx/sbin/nginx,进行强制覆盖
二. ssl证书找不到错误 Stoping nginx... nginx: [emerg] BIO_new_file("/cert/xxxxxxxx.pem") faile
根据阿里帮助提示安装证书找不到
解决办法:
将证书文件放到nginx.conf所在的目录下 ,然后修改路劲 去掉cert