近期开发微信小程序,前端说需要支持https的域名,后来说不需要了,http的就行,但是我想试一下部署https,昨天通过免费HTTPS证书申请的网站申请了ssl证书,并验证了证书,且生成了nginx代理需要的配置文件。在部署时候,发现了个问题,华为云西南-贵州不支持上传证书,着实让人生气,提示如下:
今天准备拿另一台华北区的华为云服务器试试手,结果部署成功。步骤如下:
1,在免费HTTPS证书申请的网站(也可在华为云,阿里云等网站)申请你想要使用https访问的域名所要使用的证书;
具体步骤,输入你要申请证书的域名
2,输入你的邮箱,选择要生成的证书类型,验证类型;这里我选的RSA类型和文件验证
3打开管理工具,保存公钥和证书
4,下载验证文件,保存到公网可以访问到的路径下 你的域名/.well-known/pki-validation/fileauth.txt
5,验证通过后,在管理工具中,会显示证书已颁发, 导出证书 ,我使用的是nginx代理,所以选择导入nginx格式的证书。
6,服务器配置:
我使用的是nginx,将压缩包解压后,放置到nginx目录下,更改nginx配置:
server {
listen 443 ssl;
server_name 服务器域名;
ssl_certificate 服务器域名_chain.crt;
ssl_certificate_key 服务器域名_key.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
index index.html index.htm index.php;
# gzip config
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
root /usr/share/nginx/html;
location {
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_pass_header User-Agent;
proxy_pass http://127.0.0.1:80/;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置完,重新启动nginx,启动成功后,先在本地检测 https是否生效,访问本地https访问。这里一般会出现nginx找不到证书文件的情况,所以一定要细心。
然后,在服务器本机和华为云控制台开启443端口,最后在配置ssl证书管理。
7,上传证书按照华为云的操作文档,按步骤,很快就搞好了。这里有个问题,就是华为文档中,提到有域名管理配置,实际中没有找到这个目录,不知道是不是我们服务器没有使用华为云申请域名还是什么问题。在证书推送成功后,在网络控制台-证书管理中修改配置,整个操作就完成了。