1.首先申请证书
在云产品里搜索SSL证书,点击进入,这里可以购买证书,或者有一个免费一年的,填好信息后等待审核。
2.审核通过后,可以在之前页面下载
下载好后,文件夹里面包含各种服务器的文件,这里我采用Nginx部署
3.配置nginx.conf文件
Nginx目录下有三个文件,分别是xxx.crt / xxx.key / nginx.conf 文件
这里打开nginx.conf 文件,直接修改HTTPS server部分
server {
listen 80;
server_name www.xxx.cn;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl;
server_name www.xxx.cn;
ssl_certificate ./cert/1_www.xxx.cn_bundle.crt;
ssl_certificate_key ./cert/2_www.xxx.cn.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#nginx默认文件夹
root /usr/share/nginx/www/public;
#主页文件
index index.html;
}
}
把域名填成自己的,注意.crt 和 .key的路径要正确,修改好后通过 FileZilla 等文件传输工具上传覆盖掉 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,同时将.crt 和 .key 文件上传到同级目录下的cert文件夹中
4.重启Nginx
nginx -s reload
可能遇到的问题:
报ssl模块问题:
nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:122
解决方法:
nginx缺少http_ssl_module模块,编译安装的时候带上--with-http_ssl_module配置就行了:
1.切换到nginx的源码包,重新编译(注意路径):
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
2.编译好后运行make,使用nginx -s stop 停止nginx
3.将刚刚编译好的nginx覆盖掉原有的nginx
cp ./objs/nginx /usr/local/nginx/sbin/
4.使用nginx命令启动nginx
5.使用nginx -V 命令可以查看编译信息