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


How to get SSL certificate for local website

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

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

您可以使用自签名证书,也可以从证书颁发机构获得证书。

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

也就是说,如果你想要一个"真正的"证书,你可能想看看Let's Encrypt - https://en.wikipedia.org/wiki/Let%27s_Encrypt

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

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

这里,storepass和keypass应该是相同的,以避免混淆。

现在,在创建您自己的密钥存储库之后。现在是进行服务器配置的时候了。我正在考虑你正在使用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等于您在创建keystore文件时选择的密码。

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

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

JAVA_OPTS

中添加这些服务器环境变量

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