如何获取本地网站的SSL证书

How to get SSL certificate for local website

我想为相互聊天的网页获取 SSL 证书。我还使用 AES 265 哈希算法来更安全地处理我的网页数据,并使用 sha512 进行密码哈希处理。但我不知道如何获得工业级别的 SSL 证书。我尝试了许多提供免费 SSL 的网站,但我仍然没有得到。什么是服务器签名?我怎么知道的?谢谢

这确实是一个服务器管理问题,而不是编程问题。

您可以创建一个自签名证书,也可以从证书颁发机构获得一个。

自签名证书是安全的,但很多时候编程语言不喜欢它们,或者当您使用它们连接到某些东西时,您需要告诉函数自签名没问题。

也就是说,如果您想要 "real" 证书,您可能需要查看 Let's Encrypt - https://en.wikipedia.org/wiki/Let%27s_Encrypt

您需要创建自己的密钥库来设置启用 SSL 的密钥库。 创建自己的密钥库后,它必须由 证书颁发机构 签名,例如 Go DaddyGlobalSign.

但出于测试目的,您需要使用 JDK 或 JRE (C:\Program Files\Java\jdk1.8.0_60\bin\keystool 附带的 Keytool 创建自签名证书。 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 密码

这里storepass和keypass应该是一样的,以免混淆。

现在,在创建您自己的 keystore.jks 之后,是时候进行服务器配置了。 我正在考虑您使用的是 Apache tomcat 或者如果您使用的是其他服务器,您可以通过其他教程轻松找到服务器配置。

您需要编辑两个文件:server.xmlsetenv.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属性指定生成keystore文件的路径,keystorepass等于你创建时选择的密码密钥库文件。

2) 转到 $CATALINA_HOME/bin --> 在这里你会找到 setenv.sh/bat 文件。

这里需要指定keystore的密码和keystore文件的路径

JAVA_OPTS

里面添加这些服务器环境变量

-Djavax.net.ssl.keyStore=../../../keystore/keystore.jks -Djavax.net.ssl.keyStore密码=密码

我希望这能给您一些配置方面的指导。