通过 Certbot 为 nginx 开启https支持。

http晋级到https须要在nginx的布署中参预证书音讯,查询资料后明确生成证书二种方案

环境

  • CentOS 7.1
  • python2.x(那东西系统里本来就有)

 

安装Nginx

sudo yum install nginx -y

随手运转:

sudo systemctl start nginx

随手设置开机运转:

sudo systemctl enable nginx

啊,就完事了。 至于配置文件,会在背后设置。

率先种:自签订协议证书,然后打开 CloudFlare 的 CDN 服务

 

//鲜明是还是不是安装openssl

which
openssl

//若无设置,通过apt-get可能yum等措施安装即可

sudo
apt-get install openssl

//生成一个名称叫“ssl.key”的
本田CR-VSA key文件:推行结果:生成ssl.pass.key 和 ssl.key

openssl
genrsa -des3 -passout pass:x -out ssl.pass.key 2048

openssl rsa
-passin pass:x -in ssl.pass.key -out ssl.key

//删除中间文件

rm
ssl.pass.key

任何时候,利用已经更换的
ssl.key 文件,进一步生成 ssl.csr 文件:

openssl req
-new -key ssl.key -out ssl.csr

实施此行命令会提醒输入密码,按回车就可以,因为后面大家在生成
ssl.key 时精选了密码留空。

终极大家应用前边生成的
ssl.key 和 ssl.csr 文件来生成 ssl.crt 文件,也正是自签订契约的 SSL
证书文件:

openssl
x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt

这一步之后,我们获得八个自签署的
SSL 证书文件 ssl.crt,保质期为 365 天。此时,ssl.csr
文件也早就不复被亟需,能够去除掉了:

rm
ssl.csr

 

参照地址:

 

配置https

此地大家利用 Let’s Encrypt 提供的证书。且为了有助于设置,使用 Certbot
配置工具。

第二种:借助于Let’s Encrypt

 

Let’s
Encrypt 简介

只要要启用HTTPS,大家就须要从证书授权机关(以下简称CA)
处获取一个表明,Let’s Encrypt 正是一个 CA。大家得以从 Let’s Encrypt
获得网址域名的无需付费的证书。

Certbot
简介

Certbot
是Let’s Encrypt官方推荐的获取证书的顾客端,能够帮大家获取无需付费的Let’s
Encrypt 证书。

 

1.
下载 certbot

但是是依赖官方网址来拍卖:

 

图片 1图片 2

2.
生成无需付费证书

合韩文档有相比较详细的证实,依据本身的情形来抉择

 

瞩目:官方限制了周周的提请次数,要是你举行支付测验,生成证书的时候添加–staging参数,那样就不用太担忧数量的限定了

 

上边介绍两种方式

随意哪一类艺术,实质都以表明你是还是不是兼具那么些域名,只不过完毕的渠道分化

 

1>webroot方法,此方法会在你安顿的服务器站点目录下创造.well-known 文件夹,这些文件夹里面含有了有些证实文件,certbot 会通过拜访

来验证你的域名是还是不是绑定的这些服务器

 

即便你和谐从未有过创设相应的站点也足以友善投入三个比较通用的布署

location ^~
/.well-known/acme-challenge/ { default_type “text/plain”; root
/usr/share/nginx/html; } location = /.well-known/acme-challenge/ {
return 404; }

 

certbot
certonly –webroot -w 网站根目录 -d example.com -w 网站根目录 -d
www.example.com

 

2>standalone方法,假诺您不想利用你和睦的服务器,那几个艺术是个选项,不过急需专心要关闭相应的端口可能是80照旧443(以你和谐选用的方法调控)

使用80端口:
certbot certonly –standalone –preferred-challenges http -d
example.com

使用443端口:
certbot certonly –standalone –preferred-challenges tls-sni -d
example.com

 

3>manual方法,倘让你想在恣心所欲的linux主机下生成证书,那么这种办法恐怕是贰个选项,可是要小心的是印证进程中会生成三个字符串,要求您将以此自由的字符串增添到你dns服务器才足以产生验证操作.

certbot
certonly –manual –preferred-challenges dns -d archerwong.cn

 

3.刨除证书,如若你转移的时候加多了
–stagin参数,下边包车型客车通令也要增加

certbot
revoke –cert-path /etc/letsencrypt/live/example.com/cert.pem

certbot
delete –cert-name example.com

 

4.证书更新

sudo
certbot renew –dry-run

 

5.抬高的参数采用

上述的各类指令其实都以足以投入过多参数,最佳是找出下官方文档

 

本来官方提供了众多样生成证书的主意,你能够依据你协和的实情进行接纳

 

证文士成达成后,大家得以在
/etc/letsencrypt/live/
目录下看见对应域名的文本夹,里面寄存了指向证书的局地急迅格局。

 

变迁证书后,配置
Nginx

 

开荒 nginx
server 配置文件参预如下设置:

server
{

  listen
443 ssl on;

  ssl_certificate
/etc/letsencrypt/live/网址域名/fullchain.pem;

  ssl_certificate_key
/etc/letsencrypt/live/网址域名/privkey.pem;

  ##
别的安插

}

 

强制跳转
https

https
默许是监听 443 端口的,没开启 https 访谈的话通常私下认可是 80
端口。假诺您明确网址 80 端口上的站点都帮助 https
的话加入上面包车型地铁配件能够自行重定向到 https

server
{

  listen
80;

  server_name
your.domain.com;

  return
301 ;

}

 

参考地址:

 

 

 

 

 

 

 

 

 

工具得到

证件机构: Let’s Encrypt –
https://letsencrypt.org
安顿工具: Certbot – https://certbot.eff.org/

实则,你一直用不到上边四个链接,作者把它们写在这里只是为了有扶植驾驭别的细节,顺便表示尊重。

事实上我们得以一向通过包管理器获取 Certbot 工具。

第一要求设置 EPEL 源:

sudo yum install epel-release -y

然后安装 Certbot :

sudo yum install python2-certbot-nginx -y

工具安装到位。

使用 Certbot

Certbot
使用命令行中的交互式配置,大家运营它,然后紧接着提示一步一步成功就行。

一、 启动 Certbot

经过命令:

sudo certbot --nginx

二、 填写邮箱

在下述提醒后,填写您的邮箱地址。

Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): xxxx@xxxx.com

输入你的邮箱地址,回车鲜明。

三、 同意客户协商

下述提示提醒你读书并同意客户公约之类的。

Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf.
You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

输入字母 A 回车鲜明。

四、 央求分享您的邮箱

乐趣是她们会没事给你发发广告邮件。同意就是了 ╮(╯▽╰)╭

Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

输入字母 Y 回车鲜明。

五、 内定域名

是因为大家在安装nginx后未有布署站点,所以那边要求大家提供域名,配置工具会帮我们填写nginx的布署文件。

No names were found in your configuration files. Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c' to cancel): www.xxxx.com xxx.xxxx.com

输入你本身的域名(多少个域名中间用空格隔离)回车分明。

六、 重定向

会了然你是还是不是要把具有http必要重定向到https。当然要了~

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. 
You can undo this change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

输入数字 2 回车鲜明。

七、 完成

那儿布局已经做到。你能够在接下去的输出中找到如下段落:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://www.xxxx.com and https://xxx.xxxx.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=www.xxxx.com
https://www.ssllabs.com/ssltest/analyze.html?d=xxx.xxxx.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

情趣正是你早就成功安顿了 www.xxxx.com xxx.xxxx.com 七个域名(就是在
步骤五 输入的那四个,当然,你输入了稍稍个这里就能够显得多少个)。
还要你能够在 那些网址上测验域名的情景。

八、 证书过期

是因为 Let’s Encrypt
的无偿证书有效期是90天,所以你须要每80几天再度申请贰遍。

Certbot 能够通过轻巧的授命实现这几个事业:

certbot renew

万一你照旧感到费力,能够把那几个操作设为定期任务,每80几天运维一回,就能够安枕无忧了。

其他

支撑https的nginx已经完全配置达成。接下来把您的站点位于nginx的目录下就行,日常是
/usr/share/nginx/html
假若不是此处,你能够在nginx的布局文件里找到,配置文件位于
/etc/nginx/nginx.conf

在浏览器中张开站点,就能够见到地点栏上的小绿锁了~


原来的作品公布于