前言
在局域网中总有项目需要从http切换到安全的https协议。并且要求其他电脑访问服务器的时候也是安全的https协议,两个办法,要不花钱买证书,要不学习下这篇文章。
提示:以下是本篇文章正文内容,下面案例可供参考
一、OpenSSL工具的安装和使用
提示:OpemSSL用来生成服务器要适用的证书
1.OpenSSL下载
1.1双击压缩包中的exe,进行安装
除了截图中的提示,其他的只需下一步即可。
1.2OpenSSL的打开,点击红框即可打开
二、使用OpenSSL生成服务器证书和根证书并导入到访问端电脑的证书中
1.OpenSSL 创建根 CA 证书
1.1创建 CA证书加密密钥
openssl ecparam -out contoso.key -name prime256v1 -genkey
执行完后会在当前用户目录下生成contoso.key
1.2生成证书签名请求 CSR
openssl req -new -sha256 -key contoso.key -out contoso.csr
按照截图中输入各个信息,后两项为确认密码,导入crt的时候会用
执行完后会在当前用户目录下生成contoso.csr
1.3生成根证书
openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt
执行完后会在当前用户目录下生成contoso.crt
2.OpenSSL 创建服务器证书
2.1创建服务器证书的加密密钥
openssl ecparam -out fabrikam.key -name prime256v1 -genkey
执行完后会在当前用户目录下生成fabrikam.key
2.2创建服务器证书的 CSR
openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
按照截图中输入各个信息,后两项为确认密码,导入crt的时候会用,执行完后会在当前用户目录下生成fabrikam.csr
2.3创建服务器证书的 crt
将压缩包中的http.ext黏贴到当前用户目录下,并且修改IP.1为服务器的ip,这个ip也是未来局域网中其他电脑要访问的ip
openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256 -extfile http.ext
执行完后会在当前用户目录下生成fabrikam.crt
3.OpenSSL 创建pfx服务器证书
3.1使用服务器的crt和服务器证书的加密密钥生成服务器pfx证书
openssl pkcs12 -export -out fabrikam.pfx -inkey fabrikam.key -in fabrikam.crt
执行完后会在当前用户目录下生成fabrikam.pfx
3.2将服务器证书和根证书导入到电脑的证书中
只有将两个证书导入到局域网其他电脑上的个人证书和受信任的根证书颁发机构后,访问的https就是安全的了。
- WIN+R 弹出运行框,输入如下命令,打开控制台
certmgr.msc
- 将之前的服务器pfx证书导入到个人下面
-
设置服务器证书属性
-
将之前的根证书导入到个人下面,并设置属性,目的是为了和CA证书做区分
-
将导入的两个证书复制到受信任的根证书颁发机构
三、生成的服务器pfx证书用来给IIS服务器用
提示:tomcat服务器不用看这章,请转至第四章
1.在运行页面输入如下命令,打开计算机管理
compmgmt.msc
2.打开IIS服务器,并添加网站
3.添加项目路径,选择pfx证书(只能通过3.2章节的证书属性名称来选择)点击确定后在防火墙设置服务器对应端口的入栈规则应该就可以访问了。
4.若出现这个提示,将端口改为其他的。若端口为443,访问的时候可以不输端口,其他的端口https是需要输入的。
四、生成的服务器jks证书用来给tomcat服务器用
1.使用keytool将pfx转换位jks
1.1到用户文件夹下,在路径中输入cmd回车打开命令行窗口
1.2令行窗口输入如下命令生成f服务器jks证书
keytool -importkeystore -srckeystore fabrikam.pfx -destkeystore fabrikam.jks -srcstoretype pkcs12 -deststoretype pkcs12
2.将jks路径和密码设置到tomcat\conf\server.xml中
keystoreFile为jks证书路径,keystorePass为jks证书人密码,需要改成自己的密码。
<Connector port="8443" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
relaxedPathChars='":{}' relaxedQueryChars='\":{}'
keystoreFile="D:\fabrikam.jks" keystorePass="000000"
/>
3.启动服务器,确保第二章服务器证书和根证书都导入到了客户端电脑的证书中,在防火墙设置服务器对应端口的入站规则便可以安全的访问。
4.若客户端访问服务端的时候,后台tomcat报SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target错误。
4.1在客户端浏览器访问服务端,按F12到浏览器开发者模式按照红框中的步骤下载cer证书
文章来源:https://www.toymoban.com/news/detail-460621.html
4.2将下载好的cer证书导入到服务端
- 将cer证书复制到服务器电脑
- 到服务器电脑Java\jdk1.8.0_151\jre\lib\security路径下输入cmd打开命令行,输入如下命令
keytool -import -keystore "C:\Program Files\Java\jdk1.8.0_151\jre\lib\security\cacerts" -file C:\Users\test\Desktop\web.cer -alias tomcat
将C:\Program Files\Java\jdk1.8.0_151\jre\lib\security\cacerts替换为自己服务器上的路径
将C:\Users\test\Desktop\web.cer替换为自己服务器上的cer路径和文件名称
文章来源地址https://www.toymoban.com/news/detail-460621.html
- 密钥口令为changeit
- 输入Y即可
到了这里,关于局域网内搭建安全的HTTPS协议环境,分别给IIS和tomcat使用,并解决SSLHandshakeException异常的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!