微信悬浮二维码
微信扫一扫
关注更多Golang内幕
Http免费升级Https详细步骤【Let's Encrypt】-Go语言社区

Http免费升级Https详细步骤【Let's Encrypt】

版权声明:本文来源CSDN,博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/han0373/article/details/80737567

1、Let's Encrypt

Let's Encrypt 是一个免费、开放,自动化的证书颁发机构,由 ISRG(Internet Security Research Group)运作。ISRG 是一个关注网络安全的公益组织,其赞助商包括 Mozilla、Akamai、Cisco、EFF、Chrome、IdenTrust、Facebook等公司。ISRG 的目的是消除资金和技术领域的障碍,全面推进网站从HTTP到HTTPS过度的进程。目前,包括FireFox、Chrome在内的主流浏览器都已经支持Let's Encrypt证书。

官网:https://letsencrypt.org/

项目地址:https://github.com/letsencrypt/letsencrypt


2、安装配置

项目地址下载 letsencrypt-auto 脚本:

# 选择下载路径,我这里下载在/tmp目录下  
$ cd /tmp

# 下载  
$ git clone https://github.com/letsencrypt/letsencrypt  
  
# 进入所在目录  
$ cd letsencrypt  
  
# letsencrypt-auto 帮助查看  
$ ./letsencrypt-auto --help 

创建、获取证书:(使用standalone,注意需要停止nginx 80端口服务)

./letsencrypt-auto certonly --standalone --email bboyHan@yeah.net -d www.domain.com

得到结果:


证书存放路径:/etc/letsencrypt/live/www.domain.com/

cert.pem 申请的服务器证书文件 
privkey.pem 服务器证书对应的私钥 
chain.pem 除服务器证书外,浏览器解析所需的其他全部证书,比如根证书和中间证书 

fullchain.pem 包含服务器证书的全部证书链文件

其它命令参数说明:

run:获取并安装证书到当前的Web服务器  
certonly:获取或续期证书,但是不安装  
renew:在证书快过期时,续期之前获取的所有证书  
-d DOMAINS:一个证书支持多个域名,用逗号分隔  
  
--apache:使用 Apache 插件来认证和安装证书  
--standalone:运行独立的 web server 来验证  
--nginx:使用 Nginx 插件来认证和安装证书  
--webroot:如果目标服务器已经有 web server 运行且不能关闭,可以通过往服务器的网站根目录放置文件的方式来验证  
--manual:通过交互式方式,或 Shell 脚本手动获取证书


3、Nginx安装配置

本主使用的是Ubuntu系统:

# 安装:
$>apt-get install nginx

# 目录:
# /usr/sbin/nginx:主程序
# /etc/nginx:存放配置文件
# /usr/share/nginx:存放静态文件
# /var/log/nginx:存放日志

# 进入目录:
$>cd /etc/nginx/sites-available

# 编辑default文件:
$>vim default

# 在文件末尾添加:
server {
    listen 443 ssl;

    server_name sign.tokenview.com;
    ssl on;
	# 修改以下文件(替换成自己的域名)
    ssl_certificate /etc/letsencrypt/live/www.domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.domain.com/privkey.pem;
    ssl_session_timeout 5m;
    ssl_protocols SSLv3 TLSv1;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:8080; #web应用代理跳转url
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

# http重定向到https
server {
    listen   80;
    server_name www.domain.com;
    return 301 https://$server_name$request_uri;
}

配置完成后重启nginx,使用浏览器即可查看效果。


4、续期

# 强制续期
$>./letsencrypt-auto renew --force-renewal

另外,还可以写脚本进行自动续期,在这里不做详细阐述。


-------------------------------------------

有任何建议或问题,欢迎加微信一起学习交流,欢迎从事IT,热爱IT,喜欢深挖源代码的行业大牛加入,一起探讨。

个人微信号:bboyHan


  • 发表于 2019-08-27 15:58
  • 阅读 ( 5 )

你可能感兴趣的文章

相关问题

推荐好书