报名 Let’s Encrypt证书的来由: 今后Ali云等都有无偿的 https
证书,为何还要申请这么些吧(估算也是因为Ali云那一个有免费证书的案由,所以
Let’s Encrypt 知道的人实际上并不算太多)?

目录:
1、凭证申请 Let’s Encrypt
2、Nginx辅助多域名ssl证书
3、Nginx强制行使https访谈(http跳转到https)
4、配置 Tomcat

原因是商店这两天接了广大Wechat小程序的单子,而小程序是必要求 https
的,申请了几个后Ali云的无偿就到限额了(各种Ali云的无需付费证书有限制).

SSL For Free 无需付费 SSL 凭证申请 Let’s Encrypt

Let’s Encrypt 一句话来讲正是叁个决心让全部网站都用上 https
安全加密通信的公共利润项目,背后在数不完大厂商的帮衬. 是近日免费 https
证书中最可信的.

什么是Let’s Encrypt

能够看看简书上的那篇文章写得相比详细《Let’s Encrypt
SSL证书配置》

小说中详尽介绍了运用什么手动生成SSL证书。不过自个儿个人以为依旧相比较费劲,下边笔者来介绍二个简约的生成SSL证书方案。

可是 Let’s Encrypt
有些约束,首先证书必要3个月一换(Ali云证书是一年),其次非 linux
顾客并未有太直白的合法申请方式(固然是 linux
平台也要好几个步骤).所以最棒是找可靠第三方代理,

使用sslforfree生成Let’s Encrypt证书

https://www.sslforfree.com

填写域名创设无偿的SSL证书

下载文件上盛传服务器验证并下载证书

文本上传目录

评释文件

陈设好Nginx,点击第5步中的链接看看能否访问到,若是访问日常就足以点击Download SSL Certificate
开关下载证书了。

Nginx 主配置nginx.conf如下:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;
    server_tokens off;
    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    include conf.d/*.conf;
}

Nginx web配置web.conf如下:

upstream tomcat {
   server 127.0.0.1:8080;
}

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;
    access_log  /home/dev/logs/nginx/web.access.log  main;

    #  error_page  500 502 503 504  /service/tomcat/nginx/504/504.html;
    location /static/{
        alias /home/dev/www/;
    }
    location ~/.well-known/{
        add_header Content-Type text/plain;
                allow all;
        root /home/dev/www/;
    }

     location / {
        proxy_redirect          off;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Forwarded-For $remote_addr;
        client_max_body_size      20m;
        client_body_buffer_size 128k;
        proxy_connect_timeout   600;
        proxy_send_timeout      600;
        proxy_read_timeout      900;
        proxy_buffer_size       4k;
        proxy_buffers           4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        proxy_pass http://tomcat;
        }
}

总结
1、绝相比从服务器中命令行获取脚本布置方法大概超级多,起码这边能够图形化操作,那样对于经常的客户不用操心是否影响服务器的汉中和安乐。
2、通过取得到的Let’s Encrypt
SSL证书,我们能够配备到虚构主机、VPS、服务器中,依据各个急需的WEB情状活动安顿。
3、因为Let’s Encrypt证书90天保质期,大家在SSL FOPRADOFREE注册过账户,所以到期前会提示大家,大家须要依照提醒重新续约时间和重复沟通证书铺排。

有幸的是那般的代理网址相当多,这里介绍本身用过的比较好的一个 SSL For Free
网站为

Nginx援救多域名ssl证书

要让nginx帮衬多证件,nginx必得支持TLS SNI。能够采取如下命令查看

./sbin/nginx -V 或者 /usr/local/nginx/sbin/nginx -V

查看Nginx是否扶助TLS SNI

假设展现TLS SNI support disabled能够参照那篇小说实行布置

固然是拉脱维亚语网址,可是还是比较轻易的

Nginx强制行使https访谈(http跳转到https)

SSL FOR FREE 上下载的证书的zip含蓄如下内容:

下载的评释

那边大家要将ca_bundle.crt以及certificate.crt
整合到一个文本中cert_chain.crt

 cat certificate.crt ca_bundle.crt >> cert_chain.crt

重新整合到三个文本须要手动管理一下换行,不然运行Nginx会现出”PEM_read_bio:bad
end line” 的问题

合併文件要求换行

Nginx 配置SSLhttps.conf如下:

1、钦定域名80端口强制行使https
2、配置https监听

[root@localhost conf]# cat conf.d/https.conf
upstream tomcats {
   server 127.0.0.1:8088;
}

server
    {
        listen 80;
        #listen [::]:80;
        server_name ngrok.javen205.1mfy.cn static.javen205.1mfy.cn frp.javen205.1mfy.cn ijpay.javen205.1mfy.cn;

        return 301 https://$host$request_uri;
        #rewrite ^(.*)$  https://$host$1 permanent;
    }

server {
        listen 443;
        server_name  ngrok.javen205.1mfy.cn static.javen205.1mfy.cn frp.javen205.1mfy.cn ijpay.javen205.1mfy.cn;
        ssl on;
        ssl_certificate /usr/local/nginx/conf/ssl/cert_chain.crt;
        ssl_certificate_key /usr/local/nginx/conf/ssl/private.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        access_log  /home/dev/logs/nginx/https.access.log  main;

    #  error_page  500 502 503 504  /service/tomcat/nginx/504/504.html;
    location /static/{
        alias /home/dev/www/;
    }
    location ~/.well-known/{
        add_header Content-Type text/plain;
                allow all;
        root /home/dev/www/;
    }

     location / {
        proxy_redirect          off;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Forwarded-For $remote_addr;
        client_max_body_size      20m;
        client_body_buffer_size 128k;
        proxy_connect_timeout   600;
        proxy_send_timeout      600;
        proxy_read_timeout      900;
        proxy_buffer_size       4k;
        proxy_buffers           4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        proxy_pass http://tomcats;
        }
}
[root@localhost conf]#

 1.首选输入要采纳证书的域名,有多个的话能够用空格分开同不经常间提请,可是暗中同意一个根域名的时候会把
www 也子域名也同期提请了,所以 www 的没有必要单独再申请.

配置Tomcat

配置Tomcat server.xml 的 Engine 模块下布置叁个 Valve:

<Engine name="Catalina" defaultHost="localhost"> 
<Valve className="org.apache.catalina.valves.RemoteIpValve" 
remoteIpHeader="X-Forwarded-For" 
protocolHeader="X-Forwarded-Proto" 
protocolHeaderHttpsValue="https" httpsServerPort="8088"/>  #非80端口时,必须增加httpsServerPort配置,不然request.getServerPort()方法返回 443. 
</Engine>

在Tomcat的webapps/ROOT目录下增多test.html测量检验如下图:

image.png

参照他事他说加以考察资料
Installing a certificate on
Nginx
Nginx协理多域名ssl证书
一网打尽配置SSL证书现身”PEM_read_bio:bad end
line”问题
Nginx+汤姆cat+HTTPS 配置不要求在 汤姆cat 上启用 SSL
支持

图片 1

 

2.接下来要表达这一个域名确实归于你,方法是传文书上去,然后发证书的顺序会去会见,原理如此方法如下:

选用 “Manually Verify Domain” 表示要手动验证网站归属您.

图片 2

 3.这时候用于申明的文本就生成了,要下载回去放到您的网址上,极其注意的是其一文件是无后缀名的,用
iis 的顾客要安装下网址技艺下载.

点击 “Download SSL Certificate”
下载七个文本,然后上传后的网站也后提醒出来,自身先拜候一下,要设置服务器让它们能访谈才行,不然前面是过不去的.

图片 3

4.假诺文件放置地方不错就足以走下一步下载证书了,然而出于证书独有半年,所以它还提供了到点提醒的邮件服务.

此间笔者刚强推荐我们不用提供常用的主邮箱,再说普通国内邮箱平常都会把这种不太有名之处时有产生的邮件充任垃圾邮件过滤掉,这里自个儿推荐

特地用于这种不常用场的 newbt 邮箱,注册轻易,也不会有收不到信的主题材料,网址是

 

图片 4

5.好,一切顺遂的话证书能够下载了

图片 5

此间还是有三个格外需求潜心的标题,种种服务器程序对 https
证书的格式其实是有供给的,这种格式应该是明文 base64 的 crt 格式,开源的
http 服务器

还是 golang 语言都能很好帮忙,但运用 iis 的顾客供给先转变来 pfx 证书.

有关 pfx
证书的转移和认证文件的布置也许相比费心的,所以这里有的时候半会也说不清楚,供给的网上基友能够给自个儿留言.

 

相关文章