手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:acme.sh

nginx + acme.sh + frp ,轻松本地+线上 SSL泛域名

如题的组合。由于本地写代码,比较不方便搞成SSL,毕竟自签名证书现在大部分浏览器都不认了。而且现在微信开发(小程序)、APP等都只认SSL。所以才有了利用frp来进行SSL穿透。

步骤我说的简单一点。不详细 说了

如果不需要内网穿透,其实就是 nginx + acme.sh 就Over了,只是nginx需要配置一下(记得泛域名使用的是fullchain.cer,普通 的单域名是用的xxx.domain.cer)

如果需要内网穿透,步骤简要如下

1、frps -> 设置vhost_http_port(本次假定为8888) ,然后利用supervisor 管理frp (可以使得frp异常崩溃后能够重启)【或者使用systemd,各人喜欢】

2、设置nginx,server_name 为 *.app.neatstudio.com (以app.neatstudio.com为例),在proxy_pass中选择使用upstream,设置为刚才的vhost_http_port,例:

XML/HTML代码
  1. upstream app.neatstudio.com {  
  2.     server 127.0.0.1:8888;  
  3. }  
  4.   
  5. server {  
  6.     listen 80;  
  7.     server_name *.app.neatstudio.com;  
  8.   
  9.     listen 443 ssl;  
  10.     ssl on;  
  11.     ssl_certificate /etc/nginx/ssl/*.app.neatstudio.com.fullchain.cer;  
  12.     ssl_certificate_key /etc/nginx/ssl/*.app.neatstudio.com.key;  
  13.   
  14.     ssl_session_cache shared:SSL:20m;  
  15.     ssl_session_timeout 10m;  
  16.   
  17.     ssl_prefer_server_ciphers       on;  
  18.     ssl_protocols                   TLSv1 TLSv1.1 TLSv1.2;  
  19.     ssl_ciphers                     ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;  
  20.   
  21.     # turn on the OCSP Stapling and verify  
  22.     ssl_stapling on;  
  23.     ssl_stapling_verify on;  
  24.     ssl_trusted_certificate /etc/nginx/ssl/*.app.neatstudio.com.fullchain.cer;  
  25.   
  26.   
  27.   
  28.     add_header Strict-Transport-Security "max-age=31536000";  
  29.   
  30.     location / {  
  31.         proxy_pass http://app.neatstudio.com;  
  32.         include /etc/nginx/proxy_params;  
  33.     }  
  34. }  

3、在本地(或者任意一台想有https的服务器上)安装frpc,设置subdomain就行了,例:

XML/HTML代码
  1. [test.app.ns.com]  
  2. type=http  
  3. port=80  
  4. subdomain=test  

这样就OK了。[]里的test.app.ns.com,为什么取这个名字?是因为。。。frp的客户端中的任意[]包含的TAG,都不能重名(切记)

然后一切Over(因为我使用mac+mamp,所以会更方便的管理域名)

 

Tags: frp, acme.sh, nginx, mamp

正式启用https

 其实早就该启用了,之前在折腾小菜谱的https的时候发现非常麻烦。现在acme.sh进化了,一步走就完成了

 
1、acme.sh --issue -d domain.com --nginx 他会自己找配置
2、将生成好的key,copy到指位位置,为了方便,一般都扔到/etc/nginx/ssl目录下
3、修改nginx配置,在指定的hosts下面添加下列内容:
XML/HTML代码
  1. listen 443 ssl;  
  2. ssl on;  
  3. ssl_certificate /etc/nginx/ssl/neatstudio.com.cer;  
  4. ssl_certificate_key /etc/nginx/ssl/neatstudio.com.key;  
  5.   
  6. ssl_session_cache shared:SSL:20m;  
  7. ssl_session_timeout 10m;  
  8.   
  9. ssl_prefer_server_ciphers       on;  
  10. ssl_protocols                   TLSv1 TLSv1.1 TLSv1.2;  
  11. ssl_ciphers                     ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;  
  12.   
  13. add_header Strict-Transport-Security "max-age=31536000";  
因为我是用neatstudio.com来创建的,所以生成的文件也就是neatstudio.com.cer和neatstudio.com.key了
 
如果你webserver上东西多,你干脆server nginx force-reload。官方说用reload可能不生效。如果你东西少,你就直接restart算了。
打开https://neatstudio.com ,就OK了。
然后再配置一条。如果是http,就跳到https,(当然 我还没有做这个,因为我还有不少资源用了http的)

Tags: acme.sh, https