阿里云域名配置HTTPS
这边以阿里云为例,记录如何配置HTTPS域名,登录进入阿里云控制台。
注册域名
进入域名控制台
页面,点击注册域名
功能,注册自己的域名信息。
随后进入域名控制台-域名列表
,找到已注册的域名信息。

例如这边拿到的域名信息为:
abcd.com
添加二级域名
在域名控制台-域名列表
里,选择上述创建的域名,点击解析
操作。

进入域名解析
界面,点击添加记录
创建二级域名。

填写对应的二级域名和IP地址。

申请HTTPS证书
1.进入SSL证书
菜单,选择免费证书
页签,点击创建证书
按钮。

2.这是会有一条新信息DigiCert 免费版 SSL
,点击证书申请,填写对应信息。

阿里云SSL证书申请信息填写
- 证书绑定域名:填写你的网站域名,如www.abcd.com
- 域名验证方式:如果你的域名是在当前的阿里云账号下申请的,就选自动DNS验证,如果不在当前账号下,就选手工DNS验证
- 联系人:没有联系人,就新建一个联系人,根据事情情况填写
- 所在地:根据实际情况填写
- 密钥算法:RSA
- CSR生成方式:系统生成
3.信息填写完毕后,点击DNS信息验证

因为申请的SSL证书和域名都在同一个阿里云账号下,点击验证
按钮系统会自动帮你添加DNS验证。但是,如果域名不在当前阿里云账号下,就需要选择手工DNS验证,这里就不介绍了。
4.域名验证成功后,点击提交审核
按钮。

5.等待审核,通过后会有一条已签发的SSL证书

下载HTTPS证书
选择已签发的SSL证书,点击下载
按钮,选择Nginx
服务类型的证书下载。

下载完成后,得到一个压缩包文件,打开里面有key文件
和pem文件
。

配置HTTPS证书
打开服务器,选择一个服务器位置,放入压缩包的两个文件
例如:/usr/local/nginx/cert/

打开Ngin的安装目录,找到conf
文件夹,打开配置文件:
例如:/usr/local/nginx/conf/nginx.conf

在nginx.conf
文件下,添加两个server
:
选填server{listen80;server_nameyourdomain;需要将yourdomain替换成证书绑定的域名。rewrite^(.*)$https://$host$1;将所有HTTP请求通过rewrite指令重定向到HTTPS。location/{indexindex.htmlindex.htm;}}以下属性中,以ssl开头的属性表示与证书配置有关。server{listen443ssl;配置HTTPS的默认访问端口为443。如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。server_nameyourdomain;roothtml;indexindex.htmlindex.htm;ssl_certificatecert/cert-file-name.pem;ssl_certificate_keycert/cert-file-name.key;ssl_session_timeout5m;ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;表示使用的加密套件的类型。ssl_protocolsTLSv1.1TLSv1.2TLSv1.3;表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。ssl_prefer_server_cipherson;location/{roothtml;Web网站程序存放目录。indexindex.htmlindex.htm;}}
配置完成后,检查Nginx配置文件是否可用,有successful
表示可用。
// 检查Nginx配置文件
nginx -t
配置正确后,重新加载配置文件使配置生效。
// 重启Nginx
nginx -s reload
重启成功后,Nginx的HTTPS访问就完成了,并且通过rewrite方式把所有HTTP请求也转成了HTTPS请求,更加安全。
缺少ssl_module模块
在配置Nginx的HTTPS时会报错:
the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf;
解决方法:
进入Nginx安装包目录:
cd/usr/local/nginx-1.13.1/
执行命令配置Nginx的HTTP和HTTPS:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

运行命令:
make
- 备份原有已安装好的Nginx,主要是sbin目录下的Nginx
- 将刚刚编译好的Nginx覆盖掉原有的Nginx(这个时候Nginx要停止状态)
cp ./objs/nginx /usr/local/nginx/sbin/
启动Nginx,仍可以通过命令查看是否已经加入成功
/usr/local/nginx/sbin/nginx -V
