博舍

权威SSL证书的CA机构有哪些 自己生成证书的网站有哪些

权威SSL证书的CA机构有哪些

以下文章作者SSL盾 https://www.ssldun.com/ 网站安全之盾,ssl证书价格低,签发速度快,有comodo,geotrust,rapidssl,symantec,thawte,digicert等多个全球可信SSL证书CA品牌

ComodoSSL证书

Comodo

是世界上知名的SSL证书颁发机构,著名的网络安全软件厂商,是WebTrust认证的CA服务商。致力于为个人和企业用户提供电子邮件安全、托管DNS、PKI管理、SSL证书、安全通讯以及许多其他服务,Comodo是确保互联网具有可靠和安全性的大型证书颁发机构之一。ComodoSSL证书保护服务器和客户端浏览器之间通信连接,保证传输和接收的数据的完整性,真实性以及安全性,使COMODO成为一个非常值得信赖的品牌。COMODO PositiveSSL证书是价格低,颁发速度快的SSL证书,是中小型企业和个人用户的常选的SSL证书安全产品。

GeoTrustSSL证书

GeoTrust是世界第二大的数字安全提供者,几年前成为是赛门铁克(Symantec)的子品牌。GeoTrust品牌非常受欢迎,低廉的价格非常适合中小型企业,签发速度快并且提供高达256位SSL加密。不过现在都是Digicert的子品牌。现已超过150个国家的用户选择GeoTrust产品来保护他们的在线交易和各类在线业务,Geotrust的SSL证书和信任产品使各种规模的企业能够经济、最大限度的提高其数字交易的安全性。

SymantecSSL证书

赛门铁克(Symantec),成立于1982年,全球安全领域的领导者,SymantecSSL证书(前身为VeriSign)是全球公认全球可信证书

生成自己的数字证书使网站支持HTTPS

生成自己的数字证书使网站支持HTTPS一、了解keytool命令二、为服务器端生成证书三、为客户端生成证书四、让客户端和服务器相互信任1.让服务器信任客户端2.让客户端信任服务器五、SpringBootWEB项目配置1.在application.properties文件中进行SSL配置2.访问3.http请求重定向到https端口一、了解keytool命令

进入java安装目录的bin文件中,执行dir命令,我们可以看到有一个keytool的可执行程序。我们就是用这个来生成我们所需要的数字证书

D:ProgramFilesJavajdk1.8.0_201in>dir驱动器D中的卷是软件卷的序列号是9E34-493BD:ProgramFilesJavajdk1.8.0_201in的目录2019/02/2020:12.2019/02/2020:12..2019/02/2020:1216,728appletviewer.exe2019/02/2020:1217,240extcheck.exe2019/02/2020:1217,240idlj.exe2019/02/2020:1235,160jabswitch.exe2019/02/2020:1216,728jar.exe2019/02/2020:1217,240jarsigner.exe2019/02/2020:1216,728java-rmi.exe2019/02/2020:12207,704java.exe2019/02/2020:1216,728javac.exe2019/02/2020:1217,240javadoc.exe2019/02/2020:12149,336javafxpackager.exe2019/02/2020:1216,728javah.exe2019/02/2020:1216,728javap.exe2019/02/2020:12149,336javapackager.exe2019/02/2020:12208,216javaw.exe2019/02/2020:12354,648javaws.exe2019/02/2020:1216,728jcmd.exe2019/02/2020:1217,752jconsole.exe2019/02/2020:1217,240jdb.exe2019/02/2020:1216,728jdeps.exe2019/02/2020:1216,728jhat.exe2019/02/2020:1217,240jinfo.exe2019/02/2020:1216,728jjs.exe2019/02/2020:12175,960jli.dll2019/02/2020:1217,240jmap.exe2019/02/2020:12322,392jmc.exe2019/02/2020:12417jmc.ini2019/02/2020:1216,728jps.exe2019/02/2020:1217,240jrunscript.exe2019/02/2020:1217,240jsadebugd.exe2019/02/2020:1217,240jstack.exe2019/02/2020:1216,728jstat.exe2019/02/2020:1216,728jstatd.exe2019/02/2020:12197,464jvisualvm.exe2019/02/2020:1217,240keytool.exe2019/02/2020:1217,240kinit.exe2019/02/2020:1217,240klist.exe2019/02/2020:1217,240ktab.exe2019/02/2020:12827,728msvcr100.dll2019/02/2020:1217,240native2ascii.exe2019/02/2020:1217,240orbd.exe2019/02/2020:1217,240pack200.exe2019/02/2020:1217,240policytool.exe2019/02/2020:1216,728rmic.exe2019/02/2020:1216,728rmid.exe2019/02/2020:1217,240rmiregistry.exe2019/02/2020:1217,240schemagen.exe2019/02/2020:1217,240serialver.exe2019/02/2020:1217,240servertool.exe2019/02/2020:1217,240tnameserv.exe2019/02/2020:12200,536unpack200.exe2019/02/2020:1216,728wsgen.exe2019/02/2020:1217,240wsimport.exe2019/02/2020:1217,240xjc.exe54个文件3,545,297字节2个目录99,847,462,912可用字节

从打印结果中我们可以看到我们需要的keytool,如果没有的话就要重新安装一下自己的java环境

2019/02/2020:1217,240keytool.exe

我们可以help一下,了解一下keytool命令

D:ProgramFilesJavajdk1.8.0_201in>keytool/?非法选项:/?密钥和证书管理工具命令:-certreq生成证书请求-changealias更改条目的别名-delete删除条目-exportcert导出证书-genkeypair生成密钥对-genseckey生成密钥-gencert根据证书请求生成证书-importcert导入证书或证书链-importpass导入口令-importkeystore从其他密钥库导入一个或所有条目-keypasswd更改条目的密钥口令-list列出密钥库中的条目-printcert打印证书内容-printcertreq打印证书请求的内容-printcrl打印CRL文件的内容-storepasswd更改密钥库的存储口令使用"keytool-command_name-help"获取command_name的用法二、为服务器端生成证书

接下来我们要使用下面这些东西来生成我们的CA,执行命令:

keytool-genkey-aliasspring-keypass123456-keyalgRSA-keysize1024-validity365-keystoreE:/keys/spring.keystore-storepass123456

运行过程输入必要信息,我随便填写的,最终命令执行成功:

D:ProgramFilesJavajdk1.8.0_201in>keytool-genkey-aliasspring-keypass123456-keyalgRSA-keysize1024-validity365-keystoreE:/keys/spring.keystore-storepass123456您的名字与姓氏是什么?[Unknown]:spring您的组织单位名称是什么?[Unknown]:spring您的组织名称是什么?[Unknown]:spring您所在的城市或区域名称是什么?[Unknown]:spring您所在的省/市/自治区名称是什么?[Unknown]:spring该单位的双字母国家/地区代码是什么?[Unknown]:springCN=spring,OU=spring,O=spring,L=spring,ST=spring,C=spring是否正确?[否]:yWarning:JKS密钥库使用专用格式。建议使用"keytool-importkeystore-srckeystoreE:/keys/spring.keystore-destkeystoreE:/keys/spring.keystore-deststoretypepkcs12"迁移到行业标准格式PKCS12。三、为客户端生成证书

执行下面命令

keytool-genkey-aliasspring_client-keypass123456-keyalgRSA-keysize1024-validity365-storetypePKCS12-keystoreE:/keys/client1.p12-storepass123456

执行命令,并输入必要信息,我还是随便写的。过程如下所示

D:ProgramFilesJavajdk1.8.0_201in>keytool-genkey-aliasspring_client-keypass123456-keyalgRSA-keysize1024-validity365-storetypePKCS12-keystoreE:/keys/client1.p12-storepass123456您的名字与姓氏是什么?[Unknown]:spring您的组织单位名称是什么?[Unknown]:spring您的组织名称是什么?[Unknown]:spring您所在的城市或区域名称是什么?[Unknown]:spring您所在的省/市/自治区名称是什么?[Unknown]:spring该单位的双字母国家/地区代码是什么?[Unknown]:springCN=spring,OU=spring,O=spring,L=spring,ST=spring,C=spring是否正确?[否]:y四、让客户端和服务器相互信任1.让服务器信任客户端客户端证书导出为一个单独的CER文件keytool-export-aliasspring_client-keystoreE:/keys/client1.p12-storetypePKCS12-keypass123456-fileE:/keys/client.cer

执行如下所示,密码需要重新输入

D:ProgramFilesJavajdk1.8.0_201in>keytool-export-aliasspring_client-keystoreE:/keys/client1.p12-storetypePKCS12-keypass123456-fileE:/keys/client.cer输入密钥库口令:存储在文件中的证书将该文件导入到服务器的证书库,添加为一个信任证书keytool-import-v-fileE:/keys/client.cer-keystoreE:/keys/spring.keystore-storepass123456

执行过程可以看到如下信息

D:ProgramFilesJavajdk1.8.0_201in>keytool-import-v-fileE:/keys/client.cer-keystoreE:/keys/spring.keystore-storepass123456所有者:CN=spring,OU=spring,O=spring,L=spring,ST=spring,C=spring发布者:CN=spring,OU=spring,O=spring,L=spring,ST=spring,C=spring序列号:6a4075dc有效期为ThuMay0217:59:34CST2019至FriMay0117:59:34CST2020证书指纹:MD5:38:9A:9F:42:F0:6D:BB:F8:55:CA:DA:EE:F6:C0:EF:1ESHA1:2D:AF:DB:7B:44:70:26:61:FF:70:7A:24:C7:B5:42:0A:93:C1:58:70SHA256:AC:57:24:45:53:38:38:BD:D9:35:E4:36:4E:15:F7:36:C5:BC:86:27:E5:8F:05:D4:B9:95:63:EC:3D:12:C2:AC签名算法名称:SHA256withRSA主体公共密钥算法:1024位RSA密钥版本:3扩展:#1:ObjectId:2.5.29.14Criticality=falseSubjectKeyIdentifier[KeyIdentifier[0000:BD375EE07DF77A8EB664204A37A7D886.7^...z..dJ7...0010:E0C45FD2.._.]]是否信任此证书?[否]:y证书已添加到密钥库中[正在存储E:/keys/spring.keystore]Warning:JKS密钥库使用专用格式。建议使用"keytool-importkeystore-srckeystoreE:/keys/spring.keystore-destkeystoreE:/keys/spring.keystore-deststoretypepkcs12"迁移到行业标准格式PKCS12。2.让客户端信任服务器服务器证书导出为一个单独的CER文件keytool-keystoreE:/keys/spring.keystore-export-aliasspring-fileE:/keys/server.cer

执行过程如下所示,需要输入密码

D:ProgramFilesJavajdk1.8.0_201in>keytool-keystoreE:/keys/spring.keystore-export-aliasspring-fileE:/keys/server.cer输入密钥库口令:存储在文件中的证书Warning:JKS密钥库使用专用格式。建议使用"keytool-importkeystore-srckeystoreE:/keys/spring.keystore-destkeystoreE:/keys/spring.keystore-deststoretypepkcs12"迁移到行业标准格式PKCS12。

双击server.cer文件,按照提示安装证书,将证书加入到“受信任的根证书颁发机构”

如图,我们执行完上述过程,可以看到我们的目录下有如下文件

双击server.cer,一路next,完成安装

五、SpringBootWEB项目配置1.在application.properties文件中进行SSL配置server.port=8080server.ssl.key-store=E:/keys/spring.keystoreserver.ssl.key-store-password=123456

我们继续使用8080端口(https默认应该是443,http默认是80),然后填入我们服务器端证书的位置和我们的密码

2.访问

此时,在我们的浏览器中使用https访问我们的数据可以发现能够正常访问了

此时,如果我们继续使用http访问,会发现报错,信息如下所示

BadRequestThiscombinationofhostandportrequiresTLS.3.http请求重定向到https端口

第二步中我们使用http访问时报错,虽然这严格上来说是用户输入错误和服务器无关。但是,更进一步,我们希望即支持http,又支持https;

为了代码更具一般性,我们把https的端口号修改回默认值。

修改方式:添加自定义ServletWebServerFactory,取代默认的设置。我直接添加在了自己的MainApplication中。思路就是把http的默认端口直接重新传到https的默认端口号。修改后代码如下所示。

packagecom.example.demo;importorg.apache.catalina.connector.Connector;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;importorg.springframework.boot.web.servlet.server.ServletWebServerFactory;importorg.springframework.context.annotation.Bean;@SpringBootApplicationpublicclassMainApplication{publicstaticvoidmain(String[]args){SpringApplication.run(MainApplication.class,args);}@BeanServletWebServerFactoryservletWebServerFactory(){TomcatServletWebServerFactoryserverFactory=newTomcatServletWebServerFactory();Connectorconnector=newConnector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");connector.setPort(80);connector.setSecure(false);connector.setRedirectPort(443);serverFactory.addAdditionalTomcatConnectors(connector);returnserverFactory;}}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇