创建自己签名的 OpenSSL 证书
Create OpenSSL certificates signed by myself
我正在为服务器和客户端使用 boost ssl,我脑子里有一个 server/client 程序的模型,但我不确定它是否会起作用。
我心目中的模式是我的程序证书唯一授权。我的主要问题是:我该怎么做?
在我的服务器程序中,我定义键如下:
context_.use_certificate_chain_file("../sslkeys/server.crt");
context_.use_private_key_file("../sslkeys/server.key", boost::asio::ssl::context::pem);
context_.use_tmp_dh_file("../sslkeys/dh512.pem");
我create/sign那些keys/certificates使用:
$ openssl genrsa -des3 -out server.key 2048
$ openssl req -new -key server.key -out server.csr
$ openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
$ cp server.key server.key.secure
$ openssl rsa -in server.key.secure -out server.key
$ openssl dhparam -out dh512.pem 512
对于我的客户端程序,我想创建一个证书并由我的 "server.key" 签名,因为我认为(我可能错了,如果我错了,请纠正我)这就是方法做吧。客户端程序需要使用命令的密钥:
ctx.load_verify_file("../sslkeys/client.csr");
所以我创建了一个密钥,并使用服务器密钥对其进行了签名,命令如下:
$ openssl genrsa -des3 -out client.key 2048
$ openssl req -new -key client.key -out client.csr
$ openssl x509 -req -days 3650 -in client.csr -signkey ../sslkeys/server.key -out client.crt
现在,当我 运行 我的客户端尝试连接服务器时,出现错误:Handshake failed: certificate verify failed
我在做什么有什么问题吗?我怎样才能实现我提到的模型?
如果您需要任何其他信息,请询问。
感谢您的努力。
我正在为服务器和客户端使用 boost ssl,我脑子里有一个 server/client 程序的模型,但我不确定它是否会起作用。
我心目中的模式是我的程序证书唯一授权。我的主要问题是:我该怎么做?
在我的服务器程序中,我定义键如下:
context_.use_certificate_chain_file("../sslkeys/server.crt");
context_.use_private_key_file("../sslkeys/server.key", boost::asio::ssl::context::pem);
context_.use_tmp_dh_file("../sslkeys/dh512.pem");
我create/sign那些keys/certificates使用:
$ openssl genrsa -des3 -out server.key 2048
$ openssl req -new -key server.key -out server.csr
$ openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
$ cp server.key server.key.secure
$ openssl rsa -in server.key.secure -out server.key
$ openssl dhparam -out dh512.pem 512
对于我的客户端程序,我想创建一个证书并由我的 "server.key" 签名,因为我认为(我可能错了,如果我错了,请纠正我)这就是方法做吧。客户端程序需要使用命令的密钥:
ctx.load_verify_file("../sslkeys/client.csr");
所以我创建了一个密钥,并使用服务器密钥对其进行了签名,命令如下:
$ openssl genrsa -des3 -out client.key 2048
$ openssl req -new -key client.key -out client.csr
$ openssl x509 -req -days 3650 -in client.csr -signkey ../sslkeys/server.key -out client.crt
现在,当我 运行 我的客户端尝试连接服务器时,出现错误:Handshake failed: certificate verify failed
我在做什么有什么问题吗?我怎样才能实现我提到的模型?
如果您需要任何其他信息,请询问。
感谢您的努力。