我希望获得互相聊天的网页的SSL证书。我还使用 AES 265 散列算法来处理我的网页数据更安全,并使用 sha512 进行密码散列。但我不知道如何获得工业级SSL证书。我试过很多提供免费的SSL网站,但我仍然没有得到它。什么是服务器签名?以及我怎么做到的?谢谢
答案 0 :(得分:1)
这实际上是一个服务器管理员问题,而不是编程问题。
您可以执行自签名证书,也可以从证书颁发机构获取证书。
自签名证书是安全的,但很多时候编程语言不喜欢它们,或者当你使用它们连接到某些东西时,你需要告诉自签名的函数是正常的。
那就是说,如果你想要一个“真正的”证书,你可能想看看Let's Encrypt - https://en.wikipedia.org/wiki/Let%27s_Encrypt
答案 1 :(得分:0)
您需要创建自己的密钥库来设置启用SSL的密钥库。 创建自己的密钥库后,必须由证书颁发机构签名,例如 Go Daddy 或 GlobalSign 。
但是出于测试目的,您需要使用JDK或JRE附带的Keytool创建自签名证书(C:\ Program Files \ Java \ jdk1.8.0_60 \ bin \ keystool.exe)。
您可以使用以下命令创建自签名证书:
keytool - genkey -dname“CN = SERVER_NAME,OU = ABC,O = company.com,L = Morrisville,S = NC,C = US”-alias myalias -keyalg RSA -validity 365 -keysize 2048 -keystore keystore.jks -storepass password -keypass password
这里,storepass和keypass应该是相同的,以避免一些混淆。
现在,在创建自己的keystore.jks之后,就是服务器配置的时间。 我在考虑您使用的是Apache tomcat,或者如果您正在使用其他服务器,您可以轻松地在其他教程中找到服务器配置。
您需要修改两个文件: server.xml 和 setenv.sh/bat
1)转到 $ CATALINA_HOME / conf - >在这里,您将找到server.xml,现在您必须编辑端口信息,以便通信将通过启用SSL的端口。您需要再创建一个除默认8080端口以外的连接器,如下所示:
<Connector
port="33380" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="500"
compressableMimeType="application/json,application/atom+xml,application/xml"
compression="on"
maxKeepAliveRequests="-1"
connectionTimeout="20000"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="conf/keystore/keystore.jks" keystorePass="password"
clientAuth="false" sslProtocol="TLS"/>
此处,指定 keystoreFile 属性生成的密钥库文件的路径, keystorepass 等于创建密钥库文件时选择的密码。
2)转到 $ CATALINA_HOME / bin - &gt;在这里你会找到setenv.sh/bat文件。
在这里,您需要指定密钥库密码和密钥库文件的路径。
在 JAVA_OPTS
中添加这些服务器环境变量-Djavax.net.ssl.keyStore = .. / .. / .. / keystore / keystore.jks -Djavax.net.ssl.keyStorePassword = password
我希望这会为您提供配置目的。