java使用https配置以及浏览器导入自己生成的证书

和自甴很熟 提交于 2019-12-03 20:55:24

有一个需要,客户要求使用https,但是目前只使用java生成的证书即可。之后研究了一下,记录如下。

(1)java工具keytool

位置:%JAVA_HOME%/bin/keytool.exe

常用命令:

创建

keytool -genkey -alias catest -keyalg RSA -keystore d:\catest.key

alias    指定别名

keyalg    加密方式

keystore    仓库位置

之后会要求输入其他几项:

    1.创建的仓库密码和密码确认

    2.CN(您的名字于姓氏是什么)    域名或IP,本机调试输入127.0.0.1

        OU、O等,其中CN为最重要的信息,会影响之后导入的信任cer证书能否正常访问。

    3.输入生成的秘钥密码,默认与仓库密码一致,直接输入回车即可。

也可以使用一条语句(未验证)


keytool -genkey -alias yushan -keypass yushan -keyalg RSA -keysize 1024 -validity 365 -keystore  e:/yushan.keystore -storepass 123456 -dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)";
其他参数不详细介绍,大家可以查阅。


删除


keytool -delete -alias catest -keystore d:\catest.key
查看



keytool -list -keystore d:\catest.key
当创建完成后,就可以配置服务器为https了。但是我还要做一个操作,生成cer文件,导入浏览器为信任证书,这样可以正常访问服务器,而没有提示。


导出


keytool -export -alias catest -file d:\catest.cer -keystore d:\catest.key
之后可以看到生成了 catest.cer 文件,之后导入用,keytool的操作就完成了。

更多操作,可以参考http://blog.csdn.net/tony1130/article/details/5134318

(2)tomcat配置

我使用tomcat7,其他版本应该类似。

打开conf/server.xml,复制其中被注释掉的https的配置段,粘贴到注释外面。并添加keystoreFile(仓库文件)和keystorePass(密码)属性,其他配置默认即可,如果需要优化大家可以搜索资料,配置如下

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" 
keystoreFile="d:/catest.key"
keystorePass="catest" />

现在可以启动tomcat,已经可以通过https访问了,例如https://127.0.0.1:8443

之后还有一些操作可以配置。

(3)配置web.xml,令指定的登录请求使用https,其他页面可以使用http

<login-config>
	<auth-method>CLIENT-CERT</auth-method>
	<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
	<web-resource-collection>
		<web-resource-name>SSL</web-resource-name>
		<url-pattern>/login.html</url-pattern>
	</web-resource-collection>
	<user-data-constraint>
		<transport-guarantee>CONFIDENTIAL</transport-guarantee>
	</user-data-constraint>
</security-constraint>
配置节点介绍请参考  http://252401762.iteye.com/blog/310078


(4)安全证书不受信任

现在访问时,会提示    安全证书不受信任,将之前导出的cer证书导入到浏览器的信任根证书就可以了。

双击证书,安装过程中,有一步为选择证书的安装位置,选择为  受信任的根证书颁发机构  即可。IE下正常,chrome下还是没辙。

(5)weblogic配置

使用生成的秘钥,配置weblogic。当然正式的证书中,公钥、私钥、密码、文件等要复杂一些。不过现在只是简单做实现功能。

weblogic版本10.3,windows环境。linux环境应该类似。

进入weblogic控制台,点击左侧  服务器  ,在右面的列表中选择  AdminServer(就是接受访问的服务器),进入配置页面。

配置页面中,有三个选项卡是之后会用到的,分别是   密钥库(keystore)、SSL和一般信息(general)。

在密钥库中,

密钥库选择    定制标识和定制信任(Custom Identity and Custom Trust)。

下面的两个配置相同即可:

密钥库(keysotre):密钥文件位置(d:\catest.key)

类型(keysotre type):jks

密码(passphrase):设置的密码(catest)

密码确认(passphrase):确认密码(catest)

在SSL配置中:

标识和信任位置(identity and trust location):密钥库(keystore)

秘钥别名(key alias):创建的key别名(catest)

秘钥密码和确认密码:默认创建的是和密钥库密码一样(catest)

在一般配置中:

有一项   已启用的SSL监听端口(SSL Listen Port Enabled),打钩,并记住下面的端口,默认为7002。

配置完成,保存,激活更改,重启应用。


(6)正式CA证书的使用,未完待续。。。



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!