使用免费证书配置 nginx 支持 https 访问

现在好多服务器接口都要求使用 https 协议,特别是 IOS 开发的时候,所以做为一个后台开发人员,熟练搭建 https 服务是必不可少的。其实在 nginx 中开启 ssl ,很简单,只要四行配置就可以轻松搞定。如:

listen       443 ssl;
ssl on;
ssl_certificate /lnmp/nginx/conf/demo.com.crt;
ssl_certificate_key /lnmp/nginx/conf/demo.com.key;

在搭建之前,首先要做的一件事,就是给域名申请SSL证书,其实 openssl 也可以自己生成证书,但是自己生成的证书不受浏览器信任,所以没有多少意义。现在大多数服务器商家,都会提供免费使用的 SSL 证书,比如阿里云和腾讯云都会提供一年的免费使用。我个人比较喜欢在腾讯云上使用免费的SSL,因为审核特别快,10分钟左右,证书就下来了。

申请证书

首先登录 腾讯云, 进入之后,我们看到的是一个证书列表,如:

1.jpg

在证书列表下面,有一个“申请证书”按钮,点击此按钮,会弹出一个提示框,如:

2.jpg

这里选择第 1 个框,第2个是收费版。点击确定之后,会打开证书申请页面,如:

3.jpg

在这儿只要填写上面两个必填项就行了,

通用名称:即你的域名,因为是免费的,所以这里只能申请一个域名,主域名或二级域名,如果申请主域名并不能用在二级域名上。例如 domain.com、ssl.domain.com、ssl.ssl.domain.com 分别为一个域名,其中 domain.com 不包含 ssl.domain.com 等子域名。

申请邮箱:即您的邮箱,申请通过之后,会往此邮箱发送一个通知邮件。

点击下一步,会有一个域名验证的过程,这里建议用 文件验证,更方便一些,如:

4.jpg

提交之后,会自动生成一串字符,提示您要创建一个文件。如:

5.jpg

文件位置:即网站的根目录下创建一个 .well-known 的文件夹,这个文件夹里有一个 pki-validation 文件夹,然后此文件里有一个 fileauth.txt 文件

文件内容:将此串字符放到上面的文件里。

如,你的网站域名是 demo.baidu.com , 网站在服务器的位置是 /www

则 fileauth.txt 的位置是 /www/.well-known/pki-validation/fileauth.txt,并且能用 http://demo.baidu.com/.well-known/pki-validation/fileauth.txt 访问此文件,而且文件的内容是 上面那串字符,在复制的过程注意字符不要有空格。

上面操作完成,就可以等着了,大概10分钟左右,即可申请通过。通过之后,会有一个下载按钮,点击下载即可使用, 如:

6.jpg


Nginx 配置

将证书上传到服务器的任意位置(两个文件,一个是 .crt, 一个是 .key),如上传到 /lnmp/nginx/conf/ 目录下


方案1:只支持 https

配置是很简单的,就像文章开头说的只要四行即可。打开 nginx.conf 找到 server 下,添加以下几行:

7.jpg

重启 nginx 这时候,去访问  https://demo.baidu.com 是可以成功访问的,但是访问 http://demo.baidu.com,就不行了。


方案2:让 http 自动跳转到 https 上

打开 nginx.conf 文件,在方案1的基础之上,添加一个 server ,如:

8.jpg

重启 nginx 这时候,访问 http://demo.baidu.com 会自动跳转到 https://demo.baidu.com 上去。


方案3:http 和 https 同时支持

打开 nginx.conf 文件,在方案1的基础之上,注释到 ssl on 这一行,即可,如:

9.jpg

重启 nginx 这时候,访问 http://demo.baidu.com 和 https://demo.baidu.com 都不会出错了。


未经允许不得转载:易读小屋  »  使用免费证书配置 nginx 支持 https 访问