• 把安全证书导入到java中的cacerts证书库


    在项目开发中,有时会遇到与SSL安全证书导入打交道的,如何把证书导入java中的cacerts证书库呢?
    其实很简单,方法如下:

    每一步:进入某个https://www.xxx.com开头的网站,把要导入的证书下载过来,

        在该网页上右键 >> 属性 >> 点击"证书" >>

        再点击上面的"详细信息"切换栏 >>

        再点击右下角那个"复制到文件"的按钮

        就会弹出一个证书导出的向导对话框,按提示一步一步完成就行了。

        例如:保存为abc.cer,放在C盘下


    第二步:如何把上面那步的(abc.cer)这个证书导入java中的cacerts证书库里?

        方法如下

        假设你的jdk安装在C:jdk1.5这个目录,

        开始 >> 运行 >> 输入cmd 进入dos命令行 >>

        再用cd进入到C:jdk1.5jrelibsecurity这个目录下

        敲入如下命令回车执行

        keytool -import -alias cacerts -keystore cacerts -file d:softwareAKAZAM-Mail.cer

        此时命令行会提示你输入cacerts证书库的密码,

        你敲入changeit就行了,这是java中cacerts证书库的默认密码,

        你自已也可以修改的。

    导入后用-list查看(没有使用-alias指定别名,所以是mykey),其中md5会和证书的md5对应上。
    mykey, 2012-10-26, trustedCertEntry,
    认证指纹 (MD5): 8D:A2:89:9A:E4:17:07:0B:BD:B0:0C:36:11:39:D0:3D

        ok,大功告成!
    以后更新时,先删除原来的证书,然后导入新的证书
    keytool -list -keystore cacerts
    keytool -delete -alias akazam_email -keystore cacerts
    keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts


    自定义文件和密码路径,还没有验证:
    Define the TrustStore using the JAVA_OPTS variable on the Stash Server:
    You will have to do the following:
        On Windows:
        JAVA_OPTS = -Djavax.net.ssl.trustStore="%JAVA_HOME%jrelibsecuritycacerts" -Djavax.net.ssl.trustStorePassword="changeit"
        On Linux:
        JAVA_OPTS = -Djavax.net.ssl.trustStore="$JAVA_HOME/jre/lib/security/cacerts" -Djavax.net.ssl.trustStorePassword="changeit"
    (info) On my local instance trustStore password is changeit so I belive, if you didn´t changed it, your is changeit as well.

    tomcat、junit运行时会从默认路径加载cacerts文件,如果main函数直接运行需要指定javax.net.ssl.trustStore文件路径,比如:
    java -Djavax.net.ssl.trustStore=$JAVA_HOME/jre/lib/security/cacerts -jar XXX.jar &

    注意JAVA_HOME设置中如果有空格,会java执行错误,可以把环境变量JAVA_HOME中C:Program Files缩写为C:Progra~1

  • 相关阅读:
    论知识共享平台
    网虫推荐firefox 4.0插件
    solaris下常见文件压缩/解压方式简单小结—待续中
    Nginx的启动,关闭,重启脚本
    怎样将oracle数据库用户锁住和解锁
    【APACHE】如何重启Apache?
    【MYSQL】解决Mysql直接登录问题(删除匿名用户)
    【PHP】关于set和get函数
    【JMAIL】jmail无法收邮件问题
    【PHP】Class ‘mysqli’ not found 问题
  • 原文地址:https://www.cnblogs.com/lovlos/p/6607779.html
Copyright © 2020-2023  润新知