如何获取本地网站的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 Daddy 或 GlobalSign.
但出于测试目的,您需要使用 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.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属性指定生成keystore文件的路径,keystorepass等于你创建时选择的密码密钥库文件。
2) 转到 $CATALINA_HOME/bin --> 在这里你会找到 setenv.sh/bat 文件。
这里需要指定keystore的密码和keystore文件的路径
在JAVA_OPTS
里面添加这些服务器环境变量
-Djavax.net.ssl.keyStore=../../../keystore/keystore.jks -Djavax.net.ssl.keyStore密码=密码
我希望这能给您一些配置方面的指导。
我想为相互聊天的网页获取 SSL 证书。我还使用 AES 265 哈希算法来更安全地处理我的网页数据,并使用 sha512 进行密码哈希处理。但我不知道如何获得工业级别的 SSL 证书。我尝试了许多提供免费 SSL 的网站,但我仍然没有得到。什么是服务器签名?我怎么知道的?谢谢
这确实是一个服务器管理问题,而不是编程问题。
您可以创建一个自签名证书,也可以从证书颁发机构获得一个。
自签名证书是安全的,但很多时候编程语言不喜欢它们,或者当您使用它们连接到某些东西时,您需要告诉函数自签名没问题。
也就是说,如果您想要 "real" 证书,您可能需要查看 Let's Encrypt - https://en.wikipedia.org/wiki/Let%27s_Encrypt
您需要创建自己的密钥库来设置启用 SSL 的密钥库。 创建自己的密钥库后,它必须由 证书颁发机构 签名,例如 Go Daddy 或 GlobalSign.
但出于测试目的,您需要使用 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.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属性指定生成keystore文件的路径,keystorepass等于你创建时选择的密码密钥库文件。
2) 转到 $CATALINA_HOME/bin --> 在这里你会找到 setenv.sh/bat 文件。
这里需要指定keystore的密码和keystore文件的路径
在JAVA_OPTS
里面添加这些服务器环境变量-Djavax.net.ssl.keyStore=../../../keystore/keystore.jks -Djavax.net.ssl.keyStore密码=密码
我希望这能给您一些配置方面的指导。