我正在创建服务器客户端应用程序,我想获取证书。我试图找到一些教程,例如,我发现了这一点:
openssl req -x509 -out localhost.crt -keyout localhost.key \
-newkey rsa:2048 -nodes -sha256 \
-subj '/CN=localhost' -extensions EXT -config <( \
printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
但是我收到了“找不到文件”。请告诉我该怎么做。
答案 0 :(得分:0)
使用EasyRSA可能是最简单的方式,这样您可以设置CA,然后可以根据需要签署任意数量的证书,并获得可以插入客户端的密钥,这样他们就不会再抱怨自签名证书了。
它随OpenVPN一起分发,但无需OpenVPN即可轻松使用。
请记住,现代浏览器需要SAN(主题备用名称),如果只有CN(通用名称),他们会感到不满意。
https://github.com/OpenVPN/easy-rsa
方法:
在vars文件中设置变量
初始化pki:
./easyrsa init-pki
构建rootCA:
./easyrsa build-ca
同时为example.com生成通配符的密钥和证书
./easyrsa --subject-alt-name=DNS:example.com,DNS:\*.example.com build-server-full example.com nopass
密钥和证书将位于pki子目录中的树中。
答案 1 :(得分:0)
使用以下代码生成证书。在文件夹中创建这些文件。使用命令提示符浏览(“ cd”)到该文件夹,然后运行不带引号的“ bash generate.sh”。请注意,您需要安装bash。如果您已经安装了git-scm,那么您应该已经有bash了。然后,将生成一个名为证书的文件夹。如果要git clone GitHub项目,则链接为https://github.com/micsel/generate-trusted-ssl-certificate
generate.sh
#!bin/bash
if [ ! -d $PWD/certificates ]; then
mkdir -p $PWD/certificates;
fi
openssl req \
-newkey rsa:2048 \
-x509 \
-nodes \
-keyout certificates/server.key \
-new \
-out certificates/server.crt \
-config ./openssl-custom.cnf \
-sha256 \
-days 365
openssl req \
-newkey rsa:2048 \
-x509 \
-nodes \
-keyout certificates/key.pem \
-new \
-out certificates/cert.pem \
-config ./openssl-custom.cnf \
-sha256 \
-days 365
openssl-custom.cnf
[req]
default_bits = 2048
prompt = no
default_md = sha256
x509_extensions = v3_req
distinguished_name = dn
[dn]
C = UK
L = Olathe
O = Dev
OU = Dev Department
emailAddress = youremail@yourdomain.com
CN = localhost
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.localhost
DNS.2 = localhost