首页 科技内容详情
AllbetGmaing代理(www.aLLbetgame.us):SSL基础知识及Nginx/Tomcat设置SSL

AllbetGmaing代理(www.aLLbetgame.us):SSL基础知识及Nginx/Tomcat设置SSL

分类:科技

网址:

反馈错误: 联络客服

点击直达

新2手机管理端网址

www.x2w0000.com)实时更新发布最新最快的新2手机管理端网址、新2会员线路、新2备用登录网址、新2手机管理端、新2手机版登录网址、新2皇冠登录网址。

,

HTTPS 是在 HTTP 基础之上添加 SSL/TLS 使网络通讯加密,进而确保通讯平安。可简记为 HTTPS = HTTP + SSL/TLS

本文档主要解说通例SSL花样、Nginx 与 Tomcat 的 SSL 设置方式 及 通过 OpenSSL 转换证书花样的内容。

1. SSL 证书主流花样说明

SSL 及 TLS(新版SSL)统称 SSL 证书(又称 CA 证书、数字证书),用于数据传输历程的加密。

本质上 SSL 证书是一个 X.509 证书,是界说证书数据结构的尺度。在 X.509 尺度下,包罗 Base64 ASCII 文本与二进制两种文件储存方式,凭证使用的花样和编码,证书文件具有差其余扩展名。

下图展示了 X.509 主流证书的编码花样和文件扩展名。

对于 Nginx 和 Tomcat 最常使用的是 PEM (Nginx) 与 PKCS#12(Tomcat),除此之外 Tomcat还支持基于JDK keytool 加密的 JKS 花样。

PEM 花样

大多数 CA (证书揭晓机构) 提供 PEM 花样的证书,保留在 Base64 ASCII 编码的文件中。证书文件类型可以是 .pem.crt.cer.key。由于是文本类型,以是对文件后缀名不敏感。PEM 文件可以在单个文件中包罗服务器证书、中央证书和私钥。服务器证书和中央证书也可以放在单独的 .crt.cer 文件中,私钥可以放在 .key 文件中。

PEM 文件使用 ASCII 编码,可以使用文本编辑器打开,文本内容中公钥、私钥都有两种形式。X.509 划定,取 ---- 开头的下一行首最先,到下一个 ---- 开头的上一行尾竣事。

----BEGIN CERTIFICATE----
公钥加密串
----END CERTIFICATE----

-----BEGIN PUBLIC KEY-----
公钥加密串
-----END PUBLIC KEY-----

---- BEGIN RSA PRIVATE KEY-----
私钥加密串
-----END RSA PRIVATE KEY-----

-----BEGIN PRIVATE KEY-----
私钥加密串
-----END PRIVATE KEY-----

-----BEGIN CERTIFICATE REQUEST-----
CSR加密串
-----END CERTIFICATE REQUEST-----

PKCS#7 花样

PKCS#7 花样是一种“加密新闻语法尺度”。PKCS#7证书使用 Base64 ASCII 编码,文件扩展名为 .p7b.p7c,这种花样只能存储证书,不能存储私钥。一样平常主要用来做数字信封。花样如下:

-----BEGIN PKCS7-----
公钥加密串
-----END PKCS7-----

DER 花样

DER 证书接纳二进制花样,只含有证书信息,不包罗私钥。文件扩展名为 .der.cer。这些证书主要用于Java Web服务器。

PKCS12 花样

PKCS#12证书接纳二进制花样,文件扩展名为 .pfx.p12,支持将 服务器证书中央证书私钥 存储在一个具有密码珍爱的文件中,主要用于Windows平台。

2. Nginx SSL证书设置

Nginx 支持所有 PEM 花样的证书,包罗 .pem.crt.cer.key,其中 .key 常用于私钥后缀名。

server {
    listen              443 ssl;
    server_name         www.example.com;
    ssl_certificate     /path/to/path/public.pem;
    ssl_certificate_key /path/to/path/private.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}

参数说明:

  • server_name :域名(不含https://)
  • ssl_certificate :【必填】 公钥文件位置
  • ssl_certificate_key :【必填】 私钥文件位置
  • ssl_session_timeout :客户端可复用会话的时间
  • ssl_ciphers:指定启用的加密器类型,必须是OpenSSL库支持的类型,默认 ssl_ciphers HIGH:!aNULL:!MD5;
  • ssl_protocols:示意使用的TLS协议的类型,默认是TLSv1 TLSv1.1 TLSv1.2,可选参数为SSLv2、SSLv3、TLSv1、TLSv1.1、TLSv1.2、TLSv1.3
  • ssl_prefer_server_ciphers:指定服务端加密器优先,参数为on开启,默认off关闭;

官方文档参考

  • https://nginx.org/en/docs/http/configuring_https_servers.html
  • https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate

3. Tomcat SSL证书设置

Tomcat 支持 JKS、PKCS11 和 PKCS12 花样的密钥库,JKS 花样是 Java 的尺度花样,由 JDK 的 keytool 天生;PKCS11/12 是网络尺度,由 OpenSSL 天生。

Allbet Gmaing代理

欢迎进入Allbet Gmaing代理(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

对于证书花样转换,JKS 一样平常是由 PKCS12 转换而来,Tomcat 又支持 PKCS12 以是只要将 PEM 花样转换成 PKCS12 (.pfx 或 .p12) 即可。参考 [#PEM 花样 转 PKCS#12](#PEM 花样 转 PKCS#12)

server.xml 设置

<Connector
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="<keystoreFile>" keystorePass="<passvalue>"
           clientAuth="false" sslProtocol="TLS"/>

参数说明:

  • port :HTTPS 协议端口,可以设置为 443
  • protocol :毗邻协议,由 HTTP/1.1 改为 org.apache.coyote.http11.Http11NioProtocol
  • keystoreFile :证书文件绝对路径,可以是 JKS 或 PKCS12
  • keystorePass :证书的密码
  • 未说明的参数除 maxThreads 凭证现真相形调整,其余均根据上面的设置即可。

官方文档参考:https://tomcat.apache.org/tomcat-8.5-doc/ssl-howto.html#Configuration

4. 主流证书转换方式

一样平常来说,阿里云、腾讯云直接提供差异服务器类型的证书,以下证书转换仅当无备选类型时使用。

PEM 花样 转 PKCS#12

PEM 花样的公私钥后缀名不影响转换,可以是 .crt /.pem/ .key /.cer

openssl pkcs12 -export -in public.pem -inkey private.key -out keystore.p12 -passout pass:<passvalue>

参数说明

  • -in : 指定PEM 公钥文件
  • -inkey:指定 PEM 私钥文件
  • -out:指定输出 PKCS#12 花样的证书,常以 .p12.pfx 扩展名。
  • -passout:指定 PKCS#12 证书的密码

PKCS#12 转 PEM

当提供PKCS#12证书,则需要转换为PEM证书,下令如下:

#导出私钥
openssl pkcs12 -in keystore.p12 -out private.key -nocerts -nodes -password pass:<passvalue>
#导出公钥
openssl pkcs12 -in keystore.p12 -out public.pem -clcerts -nokeys -password pass:<passvalue>

参数说明

  • -in :输入文件,本下令中是 PKCS#12 证书
  • -out:输出文件,凭证上边两种搭配,划分输出私钥与公钥
  • -nocerts:无公钥
  • -nodes:不加密私钥。现在在 OpenSSL 3.0 中废弃,使用 -noenc 取代,Git Bash 自带的版本现在还没升到 3.0
  • -clcerts:只输出客户端证书
  • -nokeys:无私钥
  • -password:PKCS#12证书的密码,需要接 pass:<现实密码>

官方文档参考:https://www.openssl.org/docs/manmaster/man1/openssl-pkcs12.html

5. [扩展] 自签发SSL证书与CA数字证书

自签发 SSL 证书

通过 openssl 天生自签发证书,自签发证书不包罗CSR中央证书,直接天生公钥。自签发的证书在网络上是不能信的,然则 内网测试与使用,也是可以的。

下令如下:

#天生RSA私钥
openssl genrsa -out private.key 2048
#自签发公钥
openssl req -new -x509 -key private.key -out public.pem -days 1095 #3年有用期

CA 数字证书

CA 数字证书是由确立者提供 CSR(Centificate Signing Request)给CA机构签发下来的公钥。

一样平常来讲,SSL运营商(如阿里云等)已经提供了直接下载指定服务器类型的公私钥功效,以下仅是历程简朴形貌。

CA 机构的处置方式一样平常不需要确立者体贴,下令:

#天生RSA私钥
openssl genrsa -out private.key 2048
#使用私钥天生CSR
openssl req -new -key privkey.key -out cert.csr

将此CSR交给 CA机构 ,由CA署名后获得公钥,使用公钥和私钥就可以部署 HTTPS 服务了。

写文历程难免有错漏,若有指正感谢涕零!

  • 澳5官网(a55555.net) @回复Ta

    2021-10-11 00:10:26 

    usdt自动充提接口www.caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

    文笔也太好了吧

发布评论