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

时间:2016-10-16 14:47:05

标签: php security ssl aes

我希望获得互相聊天的网页的SSL证书。我还使用 AES 265 散列算法来处理我的网页数据更安全,并使用 sha512 进行密码散列。但我不知道如何获得工业级SSL证书。我试过很多提供免费的SSL网站,但我仍然没有得到它。什么是服务器签名?以及我怎么做到的?谢谢

2 个答案:

答案 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

我希望这会为您提供配置目的。