使用let's encrypt免费ssl证书启用网站https-阿里云开发者社区

开发者社区> 胡昜> 正文

使用let's encrypt免费ssl证书启用网站https

简介: 网站启用https访问,首先需要一个证书机构颁发的ssl证书,目前给个人免费颁发证书的机构,比较好的是:let's encrypt。Let's Encrypt是由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起公共的免费SSL项目,免费,安装方便,配置简单,值得信赖。
+关注继续查看

网站启用https访问,首先需要一个证书机构颁发的ssl证书,目前给个人免费颁发证书的机构,比较好的是:let's encrypt。Let's Encrypt是由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起公共的免费SSL项目,免费,安装方便,配置简单,值得信赖。目前签发的加密证书已经覆盖了超过 1 亿个网站,且有望在 2018 年底前达到 1.5 亿+。2018年Let's Encrypt 发布的 ACME v2 已正式支持通配符证书,可以支持类似*.xx.com的证书,使用更加方便。
let's encrypt的证书现在支持自动颁发安装,客户端工具为certbot,官方网站:https://certbot.eff.org/,不同的操作系统,certbot程序名称不一样,我的服务器为ubuntu,对应的程序是: letsencrypt

创建证书

安装let's encrypt 客户端

sudo apt-get update
sudo apt-get install letsencrypt

使用letsencrypt创建证书,如下所示,可以指定多个域名

letsencrypt certonly --webroot -w /var/www/blog -d blog.xxx.org -w /var/www/thing -d thing.is -d m.thing.is

生成的域名保存在目录:/etc/letsencrypt/live/blog.xxx.org/中:

  • cert.pem: 域名证书
  • chain.pem: Let's Encrypt chain 证书
  • fullchain.pem: cert.pem 和 chain.pem 组合证书
  • privkey.pem: 证书私钥

生成强Diffie-Hellman Group(可选)

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

配置nginx

修改nginx配置文件,将对应域名修改为https访问,修改server配置如下

server {
  listen 443 ssl  http2 default_server;
  root /var/www/blog; # 这里是你网站的路径 路径下包含index.html等一系列文件
  index index.html index.htm;

  server_name blog.hutang.us;
  ssl_certificate /etc/letsencrypt/live/blog.hutang.us/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/blog.hutang.us/privkey.pem;
  ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
  ssl_ecdh_curve secp384r1;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m;
  ssl_session_tickets off;
  ssl_stapling on;
  ssl_stapling_verify on;

  ssl_dhparam /etc/ssl/certs/dhparam.pem;

  #允许访问let's encrypt 的webroot 插件目录
  location ~ /.well-known {
                allow all;
  }
}

http访问重写至https

server {
  listen 80;
  server_name blog.xxx.org;
  rewrite ^(.*)$ https://$host$1 permanent;
}

其他域名重定向

server {
  server_name xxx.org;
  return 301 https://blog.xxx.org$request_uri;
}

配置完成以后,重启nginx: sudo systemctl restart nginx

然后就可以通过https访问你的网站了,如图:


img_cfa268b6654aeb1bfc37861d47b31d34.png
image.png

证书更新

let's encrypt的证书有效期为3个月,到期之前需要重新生成才能继续使用,通过以下命令重新生成证书:
letsencrypt renew

可以配置计划任务定时更新证书,以免忘记。

配置systemd 计划任务

  • 创建letsencrypt服务,新建文件: /etc/systemd/system/letsencrypt.service,输入以下内容:
[Unit]
Description=letsencrypt renew
 
[Service]
Type=simple
ExecStart=/usr/bin/letsencrypt renew
ExecStop=
  • 启用服务
    sudo systemctl enable letsencrypt.service
  • 创建定时器,新建文件: /etc/systemd/system/letsencrypt.timer 输入以下内容:
[Unit]
Description=run letsencrypt renew every day
 
[Timer]
OnBootSec=10min
OnUnitActiveSec=12h
Unit=letsencrypt.service

[Install]
WantedBy=multi-user.target

OnBootSec表示系统启动后执行
官方建议计划为每12小时执行一次,实际上renew程序在证书到期之前都不会执行任何操作。

  • 启用定时器,开机启动
    sudo systemctl enable letsencrypt.timer
  • 开启定时器
    sudo systemctl start letsencrypt.timer

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
政府与金融行业网站为何必须安装SSL证书?
在了解SSL证书对于政府与金融行业网站的重要性之前,我们先来了解一下SSL证书是什么?根据百度百科上的解释,SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。
1552 0
SSL证书是如何保证网站安全的?
  浏览器在互联网中充当着十分重要的角色。浏览器是用户访问互联网的重要窗口,当用户访问网站时,都须通过浏览器指向正确的网站地址来完成。如果当遇到不安全的网站,浏览器向用户发出警告时,认为该站点存在安全隐患,用户就会对是否继续访问该网站做出考虑。
1253 0
HTTPS网站安全可靠吗
HTTPS和SSL并不意味着您拥有安全的网站 在大多数情况下,搜索引擎优化社区首先将注意力转移到小绿色锁定,当时百度SEO专家发布了一篇宣布HTTPS作为排名信号的帖子。几乎所有的SEO都建议他们的HTTP客户端为了排名目的而转向HTTPS,但实际上,它从未(也绝不应该)关于排名。
990 0
网站证书过期导致的一系列问题
前言 谷歌提议将证书有效期缩短到13个月,被其他CA和浏览器厂商无情拒绝,但缩短有效期是人心所向于是,CAB Forum第193号投票确定最长SSL证书有效期由原来的3年(39个月)改为2年(825天) 问题描述 这一个项目是物联网相关的,有app和硬件设备两种类型的client因历史原来,两种c.
1515 0
nginx1.8.1配置SSL使用HTTPS及access.log配置记录
nginx1.8.1配置SSL使用HTTPS及access.log配置记录
1652 0
蚂蚁金服网站服务器证书升级公告
尊敬的开放平台合作伙伴们:     为确保用户可以获得最佳的使用体验,蚂蚁金服网站计划于2018年7月10日升级服务器证书。 请通知贵司技术开发人员尽快完成相关验证和进行必要的修正,以免影响交易正常进行,详细信息可查看《蚂蚁金服网站新服务器证书兼容性验证指引文档》。
303 0
怎么给网站配置SSL证书(https)
怎么给网站配置SSL证书(https) 访问安全的需求和大众的趋势使得我们该考虑给网站加ssl了,给网站加上ssl并不难,只要申请一个免费的ssl证书,在服务器端配置好ssl,wordpress稍加修改就可以实现https访问了。
3487 0
+关注
胡昜
来自汉得
12
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载