你的网站HTTPS了吗 | Let’s Encrypt

前言 下午,图书馆闭馆了了、得找一个安全的地方上网(o)/~,一直听说着Let’s Encrypt。前几天玩了一下,但是本地运行Let’s Encrypt不能生成证书,Maybe School DNS question :-D,那就在腾讯云服务器玩玩。


Let’s Encrypt Let's Encrypt是由EFF、Mozilla、Cisco、Akamai、IdenTrust与密西根大学研究人员共同创立的免费的凭证中心,目的在于推动全球所有的网站都使用HTTPS加密传输,创建一个更安全、更具隐私性的Web。目前Let’s Encrypt由非营利的网际网路安全研究组织(ISRG)负责营运。

Let’s Encrypt


如何配置HTTPS

  • 生成证书 我们先在github克隆letsencrypt项目,然后生成证书。
git clone https://github.com/letsencrypt/letsencrypt
cd ./letsencrypt

# 生成证书
./letsencrypt-auto certonly -d domain.com -d www.domain.com

注意:请将domain换成对应要生成证书的域名!!!

执行脚本之后有三种生成证书的方式可选,一般选择standalone即可。

1: Apache Web Server plugin - Beta (apache)
2: Place files in webroot directory (webroot)
3: Spin up a temporary webserver (standalone)

成功的话将会返回如下的信息

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/samego.com/fullchain.pem. Your cert will
   expire on 2017-07-13. To obtain a new or tweaked version of this
   certificate in the future, simply run letsencrypt-auto again. To
   non-interactively renew *all* of your certificates, run
   "letsencrypt-auto renew"

并且我们可以从返回的信息知道生成证书的储存目录位于/etc/letsencrypt/live/domain.com/,一共生成四个证书文件,一般情况下 fullchain.pem 和 privkey.pem 就够用了。

| 文件名 | 文件作用 | | ---- | ---- | ---- | |cert.pem | 服务端证书| |chain.pem| 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书| |fullchain.pem| 包括了cert.pem和chain.pem的内容| |privkey.pem| 证书的私钥|

证书的有效期为三个月,过期后我们需要重新生成证书,letsencrypt内已经有指令重新生成。

/opt/certbot/letsencrypt-auto renew

为了方便呢,我们可以crontab定时重新生成证书,如何定时呢就不说了。


  • 配置nginx 要修改的nginx的配置文件位于/etc/nginx/sites-enabled/default
server {
    listen 443;
    #domain修改成你的域名即可
    server_name domain.com www.domain.com; 

    ssl on;
    #fullchain证书路径
    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
    #privkey证书路径
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    ssl_prefer_server_ciphers on;

    # 下面是我个人反代理的,不用管!!!
        location / {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass https://alicance.github.io;
    }
}

最后,我们重启nginx服务器即可!要是nginx起不来的话,那就看看日志!!!

# 重启nginx
sudo systemctl restart nginx.service

# 万一起不来 日志日志日志,重要的事情说三遍!!!
tail -f /var/log/nginx/error.log 

证书生成了、服务器配置好了,那就在浏览器看看。

secure


PS:生成的证书,即使域名解析到了其它的IP照样可以使用,适合局域网内SSL。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

在 CentOS 7 上使用 Apache 的 SSL 证书

本指南将向你演示如何启用 SSL 来保护由 CentOS 或者 Fedora 上的 Apache 提供服务的网站。

1712
来自专栏全沾开发(huā)

记一个node实现的图形验证码从0到1

记一个node实现的图形验证码从0到1 最近做了一个项目,需要用到给用户发送短信验证码,短信必然走的是第三方的服务。。 so 每一条...

2927
来自专栏程序猿DD

Spring Cloud构建微服务架构:分布式配置中心(加密解密)

最近正好想发一篇关于配置中心加密的细节内容,结果发现基础的加密解密居然漏了,所以在这个入门系列中补充一下。后面再更新一下,使用配置中心的一些经验和教训。 ? 在...

3397
来自专栏一名合格java开发的自我修养

HTTP协议下保证密码不被获取更健壮方式

说到在http协议下用户登录如何保证密码安全这个问题:     小白可能第一想法就是,用户在登录页面输入密码进行登录时,前台页面对用户输入的密码进行加密,然后把...

1082
来自专栏一体化运维管控平台

HTTPS 证书配置一劳永逸

HTTPS 是在 HTTP 协议基础之上加了一层 SSL/TLS 安全认证机制,原理功能概括一句即客户端和服务端在非对称密钥通讯中交换临时对称密钥进行的加密数据...

9267
来自专栏WebHub

关于搭建HTTPS服务...

关于 HTTPS 的基本原理大家都已经不再陌生,今天和大家说说如何搭建一个支持 HTTPS 的服务端。

3154
来自专栏刘望舒

Android响应式编程(一)RxJava前篇[入门基础]

1.RxJava概述 ReactiveX与RxJava 在讲到RxJava之前我们首先要了解什么是ReactiveX,因为RxJava是ReactiveX的一种...

2165
来自专栏Java3y

HTTP2和HTTPS来不来了解一下?

试想一下:请求一张图片,新开一个连接,请求一个CSS文件,新开一个连接,请求一个JS文件,新开一个连接。HTTP协议是基于TCP的,TCP每次都要经过三次握...

840
来自专栏Java技术

前后端分离后API交互如何保证数据安全性?

前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要...

2411
来自专栏魏艾斯博客www.vpsss.net

腾讯云 CDN 续期 Let’s Encrypt 证书的操作过程

今天要说的是腾讯云 CDN 续期 Let’s Encrypt 证书的操作过程,常来的朋友都知道魏艾斯博客放在腾讯云了(点我打开抢 3 折特惠),同时还用了腾讯云...

3391

扫码关注云+社区