当前位置: 首页 > 知识库问答 >
问题:

需要了解不同pem钥匙的使用

吴驰
2023-03-14

要通过ssl连接到远程mysql服务器,我们需要创建以下密钥

-rwxrwxrwx 1 root root 1.7K Oct 29 15:21 ca-key.pem
-rwxrwxrwx 1 root root 1.3K Oct 29 15:21 ca.pem
-rwxrwxrwx 1 root root 1.2K Oct 29 15:21 client-cert.pem
-rwxrwxrwx 1 root root 1.7K Oct 29 15:21 client-key.pem
-rwxrwxrwx 1 root root  993 Oct 29 15:21 client-req.pem
-rwxrwxrwx 1 root root 1.2K Oct 29 15:21 server-cert.pem
-rwxrwxrwx 1 root root 1.7K Oct 29 15:21 server-key.pem
-rwxrwxrwx 1 root root  993 Oct 29 15:21 server-req.pem

建立安全连接

mysql -u balaji_sri -pXXX --ssl-ca=ca.pem --ssl-key=client-key.pem --ssl-cert=client-cert.pem -h 18.221.222.23
I understand how web ssl works. 
(
*servers pub key is encrypted with CA'S private key which is shared to client as ssl key
*browser has all CA'S public key. browser decrypts and gets servers pub key
*client generates a random number and encrypts with servers public key
*server is able to decrypt that with its own private key
*rest of connection is handled with symmetrical encryption with the random number
)

以类似的方式,一些人可以解释上面提到的每个键的作用。(ca-key.pem,ca.pem,client-cert.pem,client-key.pem,client-req.pem,server-cert.pem,server-key.pem,server-req.pem)

共有1个答案

钱哲茂
2023-03-14

这个问题可能会引起人们对加密技术的兴趣。SX或安全性。SX。无论如何

*服务器发布密钥使用CA的私钥加密,该私钥作为ssl密钥共享给客户端

哼不可以。使用公钥加密算法,可以用公钥加密,用私钥解密。没有人可以用私钥加密。如果公钥算法也支持数字签名(例如RSA),则可以使用其私钥进行签名,每个人都可以使用签名者的公钥验证签名(类似地,不能使用公钥进行签名)。

根据你的问题,我的猜测是以下(项目重新订购):

  • ca-key.pem:认证机构的私钥(应该加密!)
  • ca.pem:权限的根证书(用ca-key.pem自签名)
  • client-key.pem:客户端的私钥
  • client-req.pem:请求验证局签字(aka. csr)
  • client-cert.pem:验证局对先前请求的响应
  • server-key.pem:与client-key.pem相同,但对于服务器
  • server-req.pem:与client-req.pem相同,但对于服务器
  • server-cert.pem:与client-cert.pem相同,但对于服务器

为了更好地理解X509证书,您可能需要学习本教程。

 类似资料:
  • 我正在研究使用Hibernate 4.1.9注释地图的不同方法 如果我想存储一个Map,其中键是实体值的属性,标记如下所示 请注意,上面的标记不会创建连接表,而是在运行时通过查询返回Map,因此Map是动态的,您不必在map中添加元素Java查询返回它们。 现在,我希望地图的内容反映应用程序添加到地图中的内容,而不是执行动态查询。 我想储存4种不同的地图 在这些情况下,键之间没有关系 我尝试了以下

  • Targets key To be discussed in order to avoid _Warning: potential malicious behavior - trust data has insufficient signatures for remote repository .dkr.ecr.us-east-1.amazonaws.com/app: valid signatur

  • Snapshot key To rotate the snapshot key: ❯ notary -D -v -s https://127.0.0.1:4443 -d ~/.docker/trust key rotate <aws_account_id>.dkr.ecr.us-east-1.amazonaws.com/app snapshot -r Enter passphrase for ne

  • Timestamp key The timestamp key can also be rotated: ❯ notary -D -v -s https://127.0.0.1:4443 -d ~/.docker/trust key rotate <aws_account_id>.dkr.ecr.us-east-1.amazonaws.com/app timestamp -r Enter the

  • 问题内容: 我有一个加密的私钥,并且知道密码。 我需要使用Java库对其进行解密。 不过,我宁愿不要使用BouncyCastle,除非没有其他选择。根据以前的经验,有太多更改,没有足够的文档。 私钥的格式如下: 我相信关键数据是Base64编码的,因为我看到的是64个字符。 我尝试了以下解密密钥: 我得到这个例外 我是否将正确的参数传递给构造函数? 我该如何工作? 我尝试了Ericsonn的建议,

  • 我只是写了一些小代码试图让我的KeyEvent管理器工作。 正如你所见,我创建了一个JFrame并添加了gameComponent,它是Game类的一个对象。我将JPanel设置为可调焦,并请求调焦。然后将名为TAdapter的KeyAdapter设置为KeyAdapter。您可以在代码的最底层看到该类,它扩展了KeyAdapter和方法keyPressed()。 我告诉程序在按下一个键时将“按下