jsp怎样做网站,兰溪网站建设公司,济南网络销售公司,网站整体优化一、概念
1.1、TLS
传输层安全协议 Transport Layer Security 作为SSL协议的继承者#xff0c;成为下一代网络安全性和数据完整性安全协议
1.2、SSL
安全套接字层 Secure Socket Layer 位于TCP/IP中的网络传输层#xff0c;作为网络通讯提供安全以及数据完整性的一种安全…一、概念
1.1、TLS
传输层安全协议 Transport Layer Security 作为SSL协议的继承者成为下一代网络安全性和数据完整性安全协议
1.2、SSL
安全套接字层 Secure Socket Layer 位于TCP/IP中的网络传输层作为网络通讯提供安全以及数据完整性的一种安全协议
1.3、HTTPS
HTTPSSLsecure socket layer/TLS(Transport Layer Security)协议HTTPS协议为数字证书提供了最佳的应用环境
1.4、OpenSSL
相当于SSL的一个实现如果把SSL规范看成OO中的接口那么OpenSSL则认为是接口的实现。接口规范本身是安全没问题的但是具体实现可能会有不完善的地方比如之前的心脏出血漏洞就是OpenSSL中的一个bug.
1.5、CA
数字证书颁发认证机构 Certification authority 包含多种密码学算法
消息摘要算法MD5、和SHA对数字证书本省做摘要处理用于验证数据完整性服务器对称加密算法RC2、RC4、IDEA、DES、AES对数据进行加密/解密操作用于保证数据保密性服务非对称加密算法RSA、DH对数据进行加密/解密操作用于保证数据保密性服务数字签名算法RSA、DSA(对数据进行签名/验证操作保证数据的完整性和抗否认性)。
1.6、KEY
通常指私钥
1.7、CSR
Certificate Signing Request的缩写即证书签名请求这不是证书可以简单理解成公钥生成证书时要把这个提交给权威的证书颁发机构。
1.8、CRT
certificate的缩写即证书。
1.9、X.509
一种证书格式.对X.509证书来说认证者总是CA或由CA指定的人一份X.509证书是一些标准字段的集合这些字段包含有关用户或设备及其相应公钥的信息。 X.509的证书文件一般以.crt结尾根据该文件的内容编码格式可以分为以下二种格式 PEM - Privacy Enhanced Mail,打开看文本格式,以-----BEGIN…开头, -----END…结尾,内容是BASE64编码. Apache和*NIX服务器偏向于使用这种编码格式. DER - Distinguished Encoding Rules,打开看是二进制格式,不可读.Java和Windows服务器偏向于使用这种编码格式
二、证书签发过程
这里使用证书工具OpenSSL: Win64OpenSSL_Light-3_0_0.exe 安装后进入安装bin目录进入命令行操作或者配置环境变量进行命令行操作
2.1、证书申请流程 2.2、申请者准备csr、key
生成key
openssl genrsa -out D:\keys\cloudweb.key 4096生成crs
openssl req -new -sha256 -out D:\keys\cloudweb.csr -key D:\keys\cloudweb.key -config ssl.conf 其中包含配置文件ssl.conf
[ req ]
default_bits 4096
distinguished_name req_distinguished_name
req_extensions req_ext[ req_distinguished_name ]
countryName Country Name (2 letter code)
countryName_default cn
stateOrProvinceName State or Province Name (full name)
stateOrProvinceName_default sc
localityName Locality Name (eg, city)
localityName_default cd
organizationName Organization Name (eg, company)
organizationName_default my
organizationalUnitName Organizational Unit Name (eg, section)
organizationalUnitName_default as
commonName Common Name (e.g. server FQDN or YOUR name)
commonName_max 64
commonName_default www.baidu.com[ req_ext ]
subjectAltName alt_names[alt_names]
IP.1 192.168.11.112
DNS.1 www.baidu.com
DNS.2 map.baidu.com3.查看crs
openssl req -text -noout -verify -in D:\keys\cloudweb.csr2.3、CA机构为申请者生成crt
CA机构得到申请者crs和相关申请、线上线下验证申请者信息为申请者制作证书。 证书中签名使用申请者公开信息计算得到摘要并使用CA的私钥进行加密得到签名。 生成crt
openssl x509 -req -days 3650 -in D:\keys\cloudweb.csr -signkey D:\keys\cagroup.key -out D:\keys\cloudweb.crt -extensions req_ext -extfile cassl.conf特别说明如果cagroup.key就是cloudweb.keycassl.conf就是ssl.conf那么此时就是自己给自己签发证书即自签名证书。 查看crt
openssl x509 -in D:\keys\cloudweb.crt -text -noout注意事项
申请证书不需要提供私钥确保私钥永远只能服务器掌握.证书公钥申请者与颁发者信息签名
三、HTTPS请求
3.1、单向证书过程 3.2、nginx服务器配置
服务器需要安装SSL模块 ./configure --prefix/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module make nginx.conf配置文件中修改如下
server {listen 443 ssl;server_name www.myweb.com; #需要访问的域名不用加httpsssl on; ssl_certificate D://keys//myweb.crt; #这里是ssl crt文件存放的绝对路径ssl_certificate_key D://keys//myweb.key; #这里是ssl key文件存放的绝对路径ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {proxy_pass http://192.168.6.45:8343/; #跳转路径}}server { listen 80;server_name www.myweb.com;rewrite ^(.*)$ https://$host$1 permanent;
} 3.3、Tomcat服务器配置
修改server.xml文件Service节点下添加
Connector port8443 protocolorg.apache.coyote.http11.Http11NioProtocolmaxThreads150 SSLEnabledtrue schemehttps securetrue clientAuthtrue sslProtocolTLS keystoreFileD:\keys\myweb.crttruststoreFileD:\keys\myweb.keystore truststorePassjsonliu123 /属性说明
clientAuth:设置是否双向验证默认为false设置为true代表双向验证keystoreFile:服务器证书文件路径truststoreFile:用来验证客户端证书的根证书此例中就是服务器证书truststorePass:根证书密码
最后
要访问https请求 需要访问8443端口访问http请求则访问Tomcat默认端口你自己设置的端口默认8080即可。
3.4、浏览器安装CA证书
如果是公认的CA机构那么浏览器一般已经安装好了证书。如果是自签名证书需要自己手动安装CA证书到受信任的根证书颁发机构。