首页 > 代码库 > jetty https证书的安装

jetty https证书的安装

部署环境:

centos6,jetty9,jdk1.7

证书为第三方机构提供的认证证书

1.修改etc/jetty-https.xml

<Set name="port"><Property name="https.port" default="443" /></Set>

<Set name="port"><Property name="https.port" default="8443" /></Set>    

2.修改start.ini

jetty.dump.stop=false


jetty.dump.stop=
etc/jetty-ssl.xml

etc/jetty-https.xml

3.重启jetty服务


访问https://localhost  会提示证书不是受信任的,则说明服务启动成功


制作证书:

1.生成keystore文件

 keytool -genkey -alias jetty -keyalg RSA -keysize 2048 -keystore mykeystore

比如:

输入keystore密码: 123456
您的名字与姓氏是什么?
  [Unknown]:  www.baidu.com
您的组织单位名称是什么?
  [Unknown]:  IT 
您的组织名称是什么?
  [Unknown]:  XXXX
您所在的城市或区域名称是什么?
  [Unknown]:  Shanghai
您所在的州或省份名称是什么?
  [Unknown]:  Shanghai

该单位的两字母国家代码是什么
  [Unknown]:  CN
CN=徐吖禾, OU=天河, O=天河有限公司, L=南京, ST=江苏, C=CN 正确吗?
  [否]:  y

输入<xahCA>的主密码
        (如果和 keystore 密码相同,按回车):  


2.生成csr文件

keytool -certreq -alias jetty -keystore mykeystore -file certreq.csr

3.提交证书验证机构,获取中级证书和服务器证书

  直接保存为zhongji.cer 和server.cer即可

4.导入中级证书  (与第三方机构确认是那一个类型的https证书,注意别名)

 keytool -import -trustcacerts -keystore mykeystore -alias zhongji -file zhongji.cer 

5.导入服务器证书

   keytool -import -trustcacerts -keystore mykeystore -alias jetty -file server.cer

附:删除证书:keytool -delete -alias tomcat -keystore server.jks 

      查看证书:keytool -list -v -keystore server.jks



jetty9中

1.把以上的mykeystore文件放入jetty目录的etc目录下

2.修改jetty-ssl.xml文件

  <Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="etc/mykeystore"/></Set>

  <Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"/></Set>

  <Set name="KeyManagerPassword">123456</Set>

  <Set name="TrustStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.truststore" default="etc/mykeystore"/></Set>

  <Set name="TrustStorePassword">123456</Set>

  <Set name="EndpointIdentificationAlgorithm"></Set>

把以上内容修改为:

  <Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="etc/keystore"/></Set>

  <Set name="KeyStorePassword">123456</Set>

  <Set name="KeyManagerPassword"><Property name="jetty.keymanager.password" default="OBF:1u2u1wml1z7s1z7a1wnl1u2g"/></Set>

  <Set name="TrustStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.truststore" default="etc/keystore"/></Set>

  <Set name="TrustStorePassword"><Property name="jetty.truststore.password" default="OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"/></Set>

  <Set name="EndpointIdentificationAlgorithm"></Set>

密码为创建mykeystore时的密码
3.重启jetty服务器


再次访问jetty,成功


JDK中keytool常用命令
-genkey      在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias       产生别名
-keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中
-keyalg      指定密钥的算法   
-validity    指定创建的证书有效期多少天
-keysize     指定密钥长度
-storepass   指定密钥库的密码
-keypass     指定别名条目的密码
-dname       指定证书拥有者信息 例如:  "CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn"
-list        显示密钥库中的证书信息      keytool -list -v -keystore sage -storepass ....
-v           显示密钥库中的证书详细信息
-export      将别名指定的证书导出到文件  keytool -export -alias caroot -file caroot.crt
-file        参数指定导出到文件的文件名
-delete      删除密钥库中某条目          keytool -delete -alias sage -keystore sage
-keypasswd   修改密钥库中指定条目口令    keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
-import      将已签名数字证书导入密钥库  keytool -import -alias sage -keystore sagely -file sagely.crt
             导入已签名数字证书用keytool -list -v 以后可以明显发现多了认证链长度,并且把整个CA链全部打印出来。

本文出自 “学习中online” 博客,请务必保留此出处http://fengsheng.blog.51cto.com/3324215/1532142