通过bouncycastle wiki页面,我能够理解如何创建X.509根证书和认证请求,但我不太明白如何在此之后继续进行概念和编程.
让我们假设甲方做了一个证书请求,并从CA获得了他的客户证书.某些乙方如何验证A的证书?A需要什么样的证书?根证书?"普通"客户证书?
如果我们假设A已成功将他的证书以DER或PEM格式发送给B,那么验证如何在编程级别上工作?
任何帮助深表感谢.
最诚挚的问候,Rob
我已经阅读了很多东西来设置我的SSL客户端/服务器系统(没有HTTP).
我从安全聊天示例和websocket ssl服务器示例中获得灵感.已经使用该命令创建了我的cert.jks文件
keytool -genkey -alias app-keysize 2048 -validity 36500
-keyalg RSA -dname "CN=app"
-keypass mysecret-storepass mysecret
-keystore cert.jks
Run Code Online (Sandbox Code Playgroud)
在安全聊天示例中,有这个类:
public class SecureChatTrustManagerFactory extends TrustManagerFactorySpi {
private static final TrustManager DUMMY_TRUST_MANAGER = new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
@Override
public void checkClientTrusted(
X509Certificate[] chain, String authType) throws CertificateException {
// Always trust - it is an example.
// You should do something in the real world.
// You will …Run Code Online (Sandbox Code Playgroud) 我必须编写一个X.509 openssl证书解析器的Java实现,但我有一个问题:我不知道如何获取sha1来验证证书.任何人都可以帮我理解我应该做什么吗?我知道getTBSCertificate()Java 中有一个方法,但我必须为了我的目的重写它.
在wireshark中,我能够看到来自PC的加密数据.它没有使用diffie hellman算法进行密钥交换,因为我只看到了Client Key Exchange数据包但没有 Server Key Exchange数据包.这意味着浏览器正在将加密密钥发送到服务器(使用服务器的公钥加密).
但我没有在该数据包中看到任何加密数据("客户端密钥交换").如何查看加密密钥?
java ×3
ssl ×2
x509 ×2
bouncycastle ×1
certificate ×1
encryption ×1
netty ×1
validation ×1
wireshark ×1