使用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
目录
相关文章
|
2月前
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
2月前
|
安全 网络安全 数据安全/隐私保护
HTTPS与SSL证书的关系
**HTTPS 与 SSL 证书:安全通信的基石** 在互联网时代,网络安全至关重要。HTTPS 和 SSL 证书是保障网站安全通信的关键。HTTPS 是 HTTP 的安全版本,通过 SSL/TLS 协议加密数据,防止窃取和篡改。SSL 证书用于验证网站身份并加密通信,包含域名、CA、公钥等信息。两者共同确保数据加密、身份验证,提升用户信任度,并有助于 SEO 优化。部署 HTTPS 和 SSL 证书是提升网站安全性和用户体验的必要措施。
|
3月前
|
网络协议 算法 数据建模
IP 地址,包括 IPv6 怎么申请 SSL证书来实现 https
很多企业单位已经开始在使用 IPv6 资源,跟 IPv4 一样,IPv6也是需要SSL证书的。在目前的SSL证书品牌,KeepTrust 是可以支持 IPv6 地址的。跟普通IP地址一样,给IPv6签发SSL证书也是需要验证申请者对 IP 地址的管理权限的。如果是 OV 版,还需要验证组织信息的真实性。
|
4月前
|
应用服务中间件 Linux 网络安全
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
1677 8
|
5月前
|
安全 网络协议 应用服务中间件
内网ip申请SSL证书实现https访问
内网IP地址虽不能直接申请公网SSL证书,但可通过IP SSL证书保障数据安全。流程包括:确定固定内网IP,选择支持内网IP的CA,注册申请证书,生成CSR,验证IP所有权,下载部署证书至Web服务器,测试HTTPS访问,确保配置正确及证书有效。此方法适用于内网环境,提升数据传输安全性。
内网ip申请SSL证书实现https访问
|
5月前
|
安全 应用服务中间件 Linux
判断一个网站是否使用HTTPS协议
判断一个网站是否使用HTTPS协议
783 4
|
5月前
|
存储 安全 搜索推荐
应该使用HTTPS的一些网站
应该使用HTTPS的一些网站
248 3
|
5月前
|
安全 应用服务中间件 网络安全
49.3k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点
mkcert是一款由Filippo Valsorda开发的免费开源工具,专为生成受信任的本地SSL/TLS证书而设计。它通过简单的命令自动生成并安装本地信任的证书,使本地环境中的HTTPS配置变得轻松无比。mkcert支持多个操作系统,已获得49.2K的GitHub Star,成为开发者首选的本地SSL工具。
312 10
|
5月前
|
存储 网络安全
Curl error (60): SSL peer certificate or SSH remote key was not OK for https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/repodata/repomd.xml [SSL: no alternative certificate subject name matches target host name 'update.cs2c.com.cn']
【10月更文挑战第30天】在尝试从麒麟软件仓库(ks10-adv-os)下载元数据时,遇到 SSL 证书验证问题。错误提示为:`Curl error (60): SSL peer certificate or SSH remote key was not OK`。可能原因包括证书不被信任、证书与域名不匹配或网络问题。解决方法包括检查网络连接、导入 SSL 证书、禁用 SSL 证书验证(不推荐)、联系仓库管理员、检查系统时间和尝试其他镜像。
1536 1
|
5月前
|
安全 数据建模 应用服务中间件
如何给IP地址添加SSL证书(https)
为IP地址配置SSL证书实现HTTPS访问,需拥有固定公网IP,选择支持IP证书的CA,完成账户注册、证书申请、所有权验证及证书安装。验证过程涉及在服务器上放置特定文件,确保可访问。安装后需测试连接,注意兼容性和安全性,定期维护证书。

热门文章

最新文章

下一篇
oss创建bucket