-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Received fatal alert: handshake_failure #769
Comments
能否打印详细的日志? |
您好,日志信息在附件里面,麻烦您帮忙看一下,谢谢! |
看起来是没有找到适用的证书。 |
您好,生成的证书过程中的文件以及导入证书的keystore文件都在附件里面了,麻烦您看一下,谢谢!storepass都是comstar |
我用的kona是1.0.9版本的 |
我只看了上面这个server证书,但TLCP需要两个证书:认证证书和加密证书。 请参考下面的测试证书:
|
上周刚刚发布了1.0.12,建议更新到最新版本上。 另外,生成国密证书时,建议使用铜锁/Tongsuo,它是OpenSSL的一个变体。 |
请问这个key usage扩展是在命令中指定的参数吗?还是说可以自动生成? |
好的,谢谢提醒,后面会更新到最新的版本,我先把这个当前的问题搞明白了,也就是说,tlcp是双证书的,我需要生成自签名的ca证书之后,还需要生成两个用ca.ks私钥签名的证书一个指定为认证证书,一个指定为加密证书吗? |
如果使用Tongsuo的话,可以在指定的扩展文件中定义,如下 |
是的。 |
好的,我去试一下,谢谢您! |
您好,我看了一下脚本文件,其中有这行命令 |
你可以从keystore文件中提取私钥和证书。 关于keytool的使用,请参考JDK的文档
是的,私钥是首要的,公钥可以从它推导出来。 |
好的,非常感谢! |
您好,我已经使用openssl生成了server-sign.crt和server.enc.crt,并将这两个证书导入了服务端的server.keystore中,将自签名的ca证书导入了客户端的trust.keystore中,然后启动服务端和客户端还是握手失败,请问我是不是还需要把sign和enc的私钥一起导入到服务端的server.keystore中?如果是的话,请问我该如何将server-sign.key和server-enc.key导入到服务端的server.keystore中?我找了一段时间没有找到合适的办法,可以麻烦您提供一下思路吗?谢谢! |
我使用keystoretool的命令 |
那是什么错呢?
.key应该是PKCS#8格式。PKCS#12是针对key store文件,与key和证书无关。 |
关于KeyStoreTool的用法,建议看看KeyStoreToolTest中的示例,比如, |
您好,非常感谢您这么晚还帮忙解决问题,我刚坐地铁回到家,日志和证书在附件里面,麻烦您抽空帮忙看一下,感谢 |
上面的 |
抱歉,昨天我回家用家里的电脑试的,那台电脑忘记配系统属性了,我重新生成了一份,麻烦您帮忙看一下,谢谢。 |
需要了解你的测试程序...怀疑server没有加载到证书。 |
您好,测试程序放在附件里了,麻烦帮忙看一下 |
kona_demo (3).zip |
可能是由于
上面的命令中还需要指定私钥。请参考KeyStoreToolTest.java中的示例,
|
您好,我导入证书的命令中使用-key指定了私钥 java -cp kona-crypto-1.0.9.jar;kona-pkix-1.0.9.jar com.tencent.kona.pkix.tool.KeyStoreTool -type PKCS12 -alias enc -key server-enc.key -certs server-enc.crt -store server.keystore -storePasswd comstar |
试试下面的命令,
|
刚开了一个issue #771,会改进一个KeyStoreTool的用法说明。 |
您好,指定了keyAlgo和keypass之后还是有些问题,请问您用1.0.12版本kona测试生成的server.keystore和cliengTrust.keystore服务端和客户端能够进行通信吗? |
好的谢谢,一开始keypass确实没搞明白,以为是生成私钥的时候加密的,现在理解了,keypass是存入到密钥库文件中时对私钥进行加密的 |
日志+文件.zip |
应该是由于client无法对server的证书进行验证。 |
您好,请问我可以用密信浏览器(国密浏览器),请求一下服务端的IP地址吗?应该是可以的吧?但是我启动了服务端,在国密浏览器中请求 |
好的我去检查一下 |
上面的加密套件没有包含TLCP指定的密码套件,比如
我想最终还是有这个问题的。浏览器也是一个TLS客户端,它预先加载的信任CA证书需要包含你访问的server所使用的CA。 |
您好,请问我该如何去检查,不是很清楚,请您指点一下 |
所以一般自签名的ca证书我们可以使用本地程序去测试,想使用第三方的请求就需要在服务端导入ca机构颁发的证书以及对应的私钥是吗? |
能否为你的测试程序创建一个GitHub仓库,它应该是一个良好的Maven或Gradle工程。 |
是的。 |
好的,您先忙,我去创建一个GitHub仓库 |
您好, |
您好,这个测试程序,是别人写的,我也不太清楚,但是看起来不像是证书以及keystore的问题了,看起来是代码的问题,他应该是没有读取到ca证书所在的keystore,这个测试程序是从kona改造而来的 |
试试将server端证书的CN修改为 |
创建证书时,指定 |
我的CA证书里面设置了keyUsage呀,为啥会报这个错呢? |
文件.zip |
是把server证书,而非CA证书,的CN设置为 |
测试用的CA的CN可以就写成 |
如果这个问题已经解决了,请关闭它。 P.S. 如想支持该项目,请为它加星 ;-) |
您好,这个问题目前还没有解决,最近在处理别的事情,不好意思耽误您的时间,我会尽快找时间继续看一下这个问题,谢谢! |
我只是确认一下这个问题。并没有耽误我的时间。 |
您好,请问我想自签名的ca证书去进行单向认证,测试一下java客户端和jetty服务端的连接,我的证书生成过程是这样的,都是使用的kona工具去执行的命令,生成两个密钥对分别是ca.ks的server.ks,用ca.ks和server.ks分别生成csr,
java -cp kona-crypto-1.0.9.jar;kona-pkix-1.0.9.jar com.tencent.kona.pkix.tool.KeyTool -genkeypair -keystore ca.ks -storetype PKCS12 -storepass 000000 -keyalg EC -groupname curveSM2 -sigalg SM3withSM2 -dname CN=ca -alias ca -validity 2838605
执行后返回如下
Generating 256 bit EC (curveSM2) key pair and self-signed certificate (SM3withSM2) with a validity of 2,838,605 days
for: CN=ca
java -cp kona-crypto-1.0.9.jar;kona-pkix-1.0.9.jar com.tencent.kona.pkix.tool.KeyTool -genkeypair -keystore server.ks -storetype PKCS12 -storepass 000000 -keyalg EC -groupname curveSM2 -sigalg SM3withSM2 -dname CN=ca -alias server -validity 2838605
执行后返回如下
Generating 256 bit EC (curveSM2) key pair and self-signed certificate (SM3withSM2) with a validity of 2,838,605 days
for: CN=ca
我又用ca.ks生成了ca.crt证书和server.crt证书
生成ca.crt
java -cp kona-crypto-1.0.9.jar;kona-pkix-1.0.9.jar com.tencent.kona.pkix.tool.KeyTool -certreq -keystore ca.ks -storetype PKCS12 -storepass 000000 -alias ca -file ca.csr
java -cp kona-crypto-1.0.9.jar;kona-pkix-1.0.9.jar com.tencent.kona.pkix.tool.KeyTool -gencert -rfc -keystore ca.ks -storetype PKCS12 -storepass 000000 -sigalg SM3withSM2 -alias ca -infile ca.csr -outfile ca.crt
生成server.crt
java -cp kona-crypto-1.0.9.jar;kona-pkix-1.0.9.jar com.tencent.kona.pkix.tool.KeyTool -certreq -keystore server.ks -storetype PKCS12 -storepass comstar -alias server -file server.csr
java -cp kona-crypto-1.0.9.jar;kona-pkix-1.0.9.jar com.tencent.kona.pkix.tool.KeyTool -gencert -rfc -keystore ca.ks -storetype PKCS12 -storepass comstar -sigalg SM3withSM2 -alias ca -infile server.csr -outfile server.crt
然后我分别将ca.crt导入clientTrust.keystore
java -cp kona-crypto-1.0.9.jar;kona-pkix-1.0.9.jar com.tencent.kona.pkix.tool.KeyStoreTool -type PKCS12 -alias ca -certs ca.crt -store clientTrust.keystore -storePasswd 000000
将server.crt导入server.keystore中
java -cp kona-crypto-1.0.9.jar;kona-pkix-1.0.9.jar com.tencent.kona.pkix.tool.KeyStoreTool -type PKCS12 -alias ca -certs server.crt -store server.keystore -storePasswd 000000
然后我在kona里面的TLCPWithHttpClientDemo代码作为参考,分别写了服务端和客户端的代码,修改了获取keystore的代码,因为我的keystore使用的kona工具生成的,所以我直接加载了我生成的keystore,指定了路径
private static SSLContext createContext() throws Exception {
// Load trust store
KeyStore trustStore = KeyStore.getInstance("PKCS12", "KonaPKIX");
try (FileInputStream keyStoreIn = new FileInputStream(
TRUSTSTORE.toFile())) {
trustStore.load(keyStoreIn, PASSWORD.toCharArray());
}
The text was updated successfully, but these errors were encountered: