天下風雲出我輩
一入江湖歲月催

Nginx配置使用https加密访问

Let’s Encrypt是由互联网安全研究组(ISRG)提供的免费、开源、自动化部署ssl的公共项目,所提供的证书已被所有主流浏览器所信任。但是有效期只有3个月,需要设置自动化更新。

使用环境:

Centos7.4+Nginx

官方有自动化部署工具Certbot,这里直接使用源码脚本安装。GitHub项目地址:https://certbot.eff.org

下载安装脚本

 git clone https://github.com/certbot/certbot
 cd certbot

使用独立模式获取证书(先临时关闭下nginx)

./certbot-auto certonly --standalone --email [email protected] -d anonym0x1.com -d www.anonym0x1.com

配置Nginx文件

生成的证书默认在/etc/letsencrypt/live/目录下,主要用到的为证书fullchain.pem、和私钥privkey.pem。编辑nginx配置文件,启用ssl模块并插入证书路径;将原有的http访问301重定向到https访问。

server {

	listen	80;
	server_name   anonym0x1.com www.anonym0x1.com;
	return	301	 https://www.anonym0x1.com$request_uri;
}

server {
    listen       443;
    server_name   www.anonym0x1.com;
    root   /usr/share/nginx/html;
    index  index.html index.htm index.php;
    
	ssl	on;
        ssl_certificate	/etc/letsencrypt/live/anonym0x1.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/anonym0x1.com/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       ssl_session_cache   shared:SSL:10m;
       ssl_session_timeout 10m; 
}

最后重启nginx服务访问网站就可以看到绿色的https链接了,因为Let’s Encrypt的证书的有效期只有90天,所以我们可以写个脚本并定个计划任务。

./certbot-auto renew --standalone --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" 
--force-renewal

 

 

赞(1) 打赏
未经允许不得转载:Anonym0x1 » Nginx配置使用https加密访问

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏