自签名的证书

1.key -export 产生的cer文件


keytool -genkeypair -keyalg RSA -alias tomcat -keystore tomcat.keystore

注意在被提示输入名字(CN)的时候要输入ip或者域名,“127.0.0.1”或者“localhost”,后面浏览器访问的时候,也只能用此时输入的ip或者域名才能正常访问,

其他被提示输入的东西随便输

keytool -export -alias tomcat -keystore tomcat.keystore -file xxx.cer


上面生成cer文件,在windows下双击打开,

然后点击安装证书——》下一步——》将证书放入下列存储——》受信任的根证书颁发机构——》确定-》下一步——》完成

受信任的根证书颁发机构这个选项,好像必须是这个,其他的选项,导入后也无法被信任。

然后IE 和 chrome中就可以正常https访问了

firefox好像中无法把这个文件导入为根证书颁发机构,只能导入为服务器,但是导入之后是无效的(可能是ip或域名无法和证书关联)

不过,firefox可以用另一种方法保存证书:

证书管理器——》添加例外——》输入网址——》获取证书——》(成功后,下面会显示一坨信息)——》确认安全例外


2.用openssl 生成根证书 ,用自己生成的根证书签名

a.生成服务器keystore

keytool -genkeypair -keyalg RSA -alias tomcat -keystore tomcat.keystore

-genkeypai 和 -genkey 应该是一样的

b.用上一步的keystore生成csr文件

keytool -certreq -alias tomcat -keystore tomcat.keystore -file certreq.csr
c生成CA根证书

openssl req -new -x509 -keyout ca.key -out ca.crt

d.用上一步生成的CA对csr文件进行签名

路径和文件初始化:

mkdir demoCA

cd demoCA

mkdir newcerts

touch index.txt

echo 1234 >serial
签名:

openssl ca -in certreq.csr  -out certreq.crt -cert ca.crt -keyfile ca.key


e.把证书链文件ca.crt和证书回复certreq.crt导入a中生成的keystore文件中

keytool -import -alias root -keystore tomcat.keystore -trustcacerts -file ca.crt
keytool -import -alias tomcat -keystore tomcat.keystore -file certreq.crt

第一句会提示:

是否信任此证书? [否]:  y
证书已添加到密钥库中

第二句会提示:

证书回复已安装在密钥库中


f.tomcat配置文件

和1中是一样的


g.浏览器或者操作系统导入根证书ca.crt

ie,chrome基本和1中是一样的

firefox,可以直接在根证书选项中导入


可能遇到的问题:

1.找不到 openssl.cnf

只要把 参数中 -config openssl.cnf 这项去掉就可以了

去掉后,openssl会用自己默认的openssl.cnf文件

我的系统是/usr/lib/ssl/openssl.cnf


2.待签名的服务器信息和CA的信息不相符

The countryName field needed to be the same in the
CA certificate (cn) and the request (Unknown)

解决方法:

方法一:重新生成相关文件,使相同

方法二:编辑openssl.cnf,修改policy为anything

方法三:好像有个参数-policy anything?

方法四:按照需求改变openssl.cnf中的配置,分别配置对每个字段的要求

另外,即使输入字段相同,也有可能报错,原因可能是编码不同


3.chrome打开网页后会提示:该网站使用的安全设置已过期(原因见参考4)

网页可以正常打开,只是地址栏左侧不是绿色的锁头,而是一个灰色的带警告三角的锁头

解决方法:

ca签名是增加参数-md sha256

openssl ca -in certreq.csr  -out server127.crt -cert ca.crt -keyfile ca.key -md sha256

当然你也可以加个-days 100的选项使之在2016年1月1号之前失效

openssl ca -in certreq.csr -out server127.crt -cert ca.crt -keyfile ca.key -days 100


最后,一些没搞明白的:

1.openssl -sha256

2.openssl -newkey rsa:2048

3.openssl -keysize 2048

4.openssl -md sha256

上面这些参数的区别和联系是什么?


结果:





参考:

1.http://www.html580.com/9581(有图片和详细说明,正确性待考)

2.http://blog.94it.net/post/openssl-ca.html

3.http://www.wosign.com/Support/SSLins/tomcat_install.htm

4.http://www.itrus.cn/html/fuwuyuzhichi/1048.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值