【问题标题】:How to create JKS keystore file on secure domain for java netty-socketIO如何在安全域上为 java netty-socketIO 创建 JKS 密钥库文件
【发布时间】:2019-10-10 13:15:46
【问题描述】:

我需要在安全域上创建一个 JKS 密钥库文件(例如:https://example.com)。

我将在我的 java netty-socketIO 服务器端使用这个密钥库文件。

 Configuration config = new Configuration();
 config.setHostname("example.com");
 config.setPort(3037);
 config.setKeyStorePassword("password");
 InputStream stream = new FileInputStream("C:/keystore.jks");
 config.setKeyStore(stream);

我不太确定创建 jks 文件的最佳方法是什么以及这个文件需要什么。

我正在为这个 java socket 程序使用 windows vps。

提前致谢

【问题讨论】:

    标签: java openssl netty-socketio


    【解决方案1】:

    您可以使用 java 的 keytool 工具。 你应该已经安装了 java 并且你的 PATH 中的 JDK bin 文件夹(如果没有从 JDK 的 bin 目录运行它)。

    $ keytool -keystore mykeystore.jks -genkey -alias myalias
    

    使用您要存储到您的第一个密钥 (myalias) 的值回答问题,该工具将创建一个密钥库,其中包括一个具有别名 myalias 的密钥。

    完成后,您可以列出密钥库的密钥

    $ keytool -keystore mykeystore.jks -list
    

    【讨论】:

    • 你好 Loannis。我试着按照你的步骤。但我得到了这个错误。 keytool error: java.io.FileNotFoundException: mykeystore.jks (Access is denied)我不知道是什么意思。
    • 这意味着您对运行 keytool 的目录没有写入权限。如果您使用的是 Windows 8-10 并且您尝试从 Program Files 运行它,您可能没有写入权限。尝试使用管理员权限(提升的命令行)打开 CMD。
    • 是的,它对我有用,顺便说一句,我如何在创建 JKS 文件时设置域名(例如:example.com)。或者只要我们在安全域(在我的情况下为 vps)上创建它就没有必要?
    • 域名应加在证书的SAN属性(Subject Alternative Name)下。你可以这样做:keytool -keystore mykeystore.jks -genkey -alias myalias -ext san=dns:example.com
    猜你喜欢
    • 2012-08-05
    • 2011-12-10
    • 2016-06-23
    • 1970-01-01
    • 2017-07-23
    • 2020-04-15
    • 2010-10-06
    • 2016-10-28
    • 1970-01-01
    相关资源
    最近更新 更多