当前位置:首页 > 运维 > 正文内容

Certbot-免费的https证书

phpmianshi3年前 (2018-05-06)运维452

什么是HTTPS?

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS:全称:Hyper Text Transfer Protocol over Secure Socket Layer,则是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

如何使用HTTPS?

一般情况下,要使用HTTPS协议,需要有一张被信任的 CA ( Certificate Authority )也就是证书授权中心颁发的 SSL 安全证书,并且将它部署到你的网站服务器上。一旦部署成功后,当用户访问你的网站时,浏览器会在显示的网址前加一把小锁,表明这个网站是安全的,当然同时你也会看到网址前的前缀变成了 https ,不再是 http 了

获取SSL证书

理论上,我们自己也可以手动制作一个 SSL 安全证书,但是我们自己签发的安全证书浏览器信任,所以我们需要被信任的证书授权中心( CA )签发的安全证书。而一般的 SSL 安全证书签发服务都需要付费,且价格昂贵,不过为了加快推广 https 的普及, EEF 电子前哨基金会、 Mozilla 基金会和美国密歇根大学成立了一个公益组织叫 ISRG ( Internet Security Research Group ),这个组织从 2015 年开始推出了 Let’s Encrypt 免费证书。这个免费证书不仅免费,而且还相当好用,所以我们就可以利用 Let’s Encrypt 提供的免费证书部署 https 了。

Let’s Encrypt

Let’s Encrypt提供了免费的证书申请服务,同时也提供了官方客户端 Certbot,打开首页,就可以得到官方的安装教程。官方教程给出了四种常用服务器和不同的Linux、Unix的安装使用方案,可以说是十分的贴心了。

Certbot首页


下面我将会介绍一个通用的安装方案:

1.获取certbot-auto
wget  
chmod a+x certbot-auto
2.生成证书

生成证书前需要关闭服务器

service nginx stop
./certbot-auto certonly

根据提示,输入相关资料后,如打印类似以下内容,即可在/etc/letsencrypt/archive目录下得到证书文件。

如果不想一步一步走,也可以直接使用以下命令直接生成。注意xxx需要替换为自己的东西。

./certbot-auto certonly --standalone --email xxx@xxx.com --agree-tos -d xxx.com -d www.xxx.com



3.配置证书

Nginx中配置SSL证书的配置文件参考如下:

server {
    listen  443 ssl;
    server_name xxx.com;
    location / {
        # ....
    }
    ssl_certificate /etc/letsencrypt/live/xxx.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/xxx.com/privkey.pem;
}
server {
    listen  80;
    server_name xxx.com;
     location / {
                # ...
        }
      #如果需要把http强制转换为https,需要配置以下内容
      if ($host = xxx.com) {
          return 301 https://$host$request_uri;
      } 
}

配置完成后,启动Nginx,浏览器中查看效果。

service nginx start






版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

linux中三种风格Unix、BSD、GNU的ps的参数说明

背景Linux系统中使用GNUps命令支持3种不同类型的命令行参数:Unix风格的参数,前面加单破折线;BSD风格的参数,前面不加破折线;GNU风格的长参数,前面加双破折线。Unix风格参数ps [-...

linux中cpu占用过高排查方法

CPU使用率查看top通过top -d 0.1可以缩短采样时间。-d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。load average后面的三个数分别是1分钟、5分钟...

Linux中ss命令Recv-Q和Send-Q详解

ss用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netst...

linux中配置sudo赋予普通用户对某些命令的执行权限

背景有时我们需要给普通用户,某个命令的执行权限,但是又不想让这个普通用户能执行更多的其他命令,这时候我们可以配置sudo,设置只能执行某几个命令即可配置vim /etc/sudoers #...

linux中sed用法读这一篇就够了

1.概念sed是一种行编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的...

linux中Cannot assign requested address的问题处理

问题描述:最近系统报警有类型如下错误:Cannot assign requested address  主要是连接mysql时产生的错误。分析原因:客户端与服务端每建立一个连接,客户端一侧都...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。