sud*_*udo 4 java https web-applications ssl-certificate web
我想在java中通过https访问Web应用程序.我是这个领域的新手.我从一些博客中读到,可以通过生成某种身份证书来制作它.是否有任何网站提供免费证书?我可以有任何博客或网站参考.
谢谢
Nik*_*hev 10
您需要获得CA(证书颁发机构)批准的SSL证书,以便您的客户在使用您的Web应用程序时不会在其浏览器中收到警告.要获得此类证书,您通常需要向CA支付一些费用.但是,出于测试目的,您可以使用自签名证书.
您可以生成自签名证书并将其放在服务器上.稍后您可以使用真实证书替换它.如果您已经拥有真实证书,请跳到我的答案的第2步.生成自签名证书的方法有所不同,但基本上您必须执行以下操作(抽象):
1.生成自签名证书:
您可以使用大量工具和程序,但不知何故,我发现生成自签名证书的最常用方法是:
a)java的keytool - http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html b)openssl - http://www.sslshopper.com/article-most-common- OpenSSL的,commands.html
这两种方法都是绝对等价的,你喜欢哪一种方法(我使用openssl)
2.将此证书放在servlet容器/应用程序服务器中.
有许多servlet容器和应用程序服务器,并且在不同版本的服务器/容器和所选配置之间放置证书的说明也各不相同.下面我将列出我认为现在最受年轻人欢迎的那些......
a)tomcat 7 - http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html
c)jbossWeb(Servlet容器) - http://docs.jboss.org/jbossweb/3.0.x/ssl-howto.html
您需要SSL证书才能为SSL应用程序提供服务.SSL证书的问题在于它需要被浏览器信任,因此如果您让人们使用该应用程序,您需要从证书提供商(如Godaddy或其他许多人)那里获得真正的SSL证书.出于测试目的,您可以制作可以使用的"自签名"证书,但使用浏览器的客户端将收到警告,表明证书存在问题.
无法免费获得真正的SSL证书.
我相信这个答案你可以做出适当的谷歌查询,让你在路上.
小智 5
我知道这是一个非常古老的线程,但是如今您可以从称为“加密”的CA(证书颁发机构)获得免费证书。使用Certbot ACME协议客户端(自动证书管理环境)https://certbot.eff.org/获得证书非常容易。客户端要求您的服务器具有root访问权限。
1)使用certbot-auto脚本安装Cerbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto
./certbot-auto --help
Run Code Online (Sandbox Code Playgroud)
2)使用独立插件或webroot插件获取许可证。独立服务器将小型服务器打开到端口80或443,因此任一端口都必须空闲。Webroot使用现有的运行服务器。使用独立运行命令
certbot-auto certonly --standalone --standalone-supported-challenges http-01 -d yourdomain.com
Run Code Online (Sandbox Code Playgroud)
使用webroot插件和独立插件,certonly选项certbot将获取证书并将其存储到/ etc / letsencrypt / live /。
3)“让我们加密”的证书寿命很短(只有90天),因此请记住要续签这些证书
certbot-auto renew
Run Code Online (Sandbox Code Playgroud)
4)获得证书后,需要将其转换为PKCS12格式并将其存储到Java密钥库中。
openssl pkcs12 -export -in /etc/letsencrypt/live/yourdomain.com/fullchain.pem -inkey /etc/letsencrypt/live/yourdomain.com/privkey.pem -out /etc/letsenscrypt/live/yourdomain.com/pkcs.p12 -name mytlskeyalias -passout pass:mykeypassword
keytool -keystore /path/to/my/keystore -delete -alias ‘mytlskeyalias’ -storepass ‘mystorepassword’
keytool -importkeystore -deststorepass mystorepassword -destkeypass mykeypassword -destkeystore /path/to/my/keystore -srckeystore /etc/letsencrypt/live/mydomain.com/pkcs.p12 -srcstoretype PKCS12 -srcstorepass mykeypassword -alias mytlskeyalias
Run Code Online (Sandbox Code Playgroud)
所有步骤均在https://vaadin.com/blog/-//blogs/enabling-https-in-your-java-server-using-a-free-certificate中进行了详细说明
然后,按照Nikola Yovchev的链接访问特定的Servlet容器,以启用SSL / TLS。