1、生成一个自定义的CA机构,生成证书
openssl req -x509 -sha256 -days 356 -nodes -newkey rsa:2048 -subj "/CN=msetproot/C=CN/L=GuangDong" -keyout rootCA.key -out rootCA.crt
-subj “/CN=1111/C=CN/L=GuangDong”
1111替换为自定义的机构名称
会出现两个文件
rootCA.key
rootCA.crt CA机构的证书
2、创建服务器私钥
openssl genrsa -out server.key 2048
3、创建证书签名请求配置文件
cat > csr.conf <<EOF
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[ dn ]
C = US
ST = California
L = San Fransisco
O = MLopsHub
OU = MlopsHub Dev
CN = 127.0.0.1
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
IP.1 = 127.0.0.1
EOF
/*
创建一个csr.conf文件以包含生成 CSR 的所有信息。替换127.0.0.1为自己的域名或 IP 地址
也可以不指定配置文件,直接生成的时候手动填写
这些问题的答案并不重要.他们在查看证书时出现.但是我们几乎不需要查看证书
证数各参数含义如下:
C-----国家(Country Name)
ST----省份(State or Province Name)
L----城市(Locality Name)
O----公司(Organization Name)
OU----部门(Organizational Unit Name)
CN----产品名(Common Name)
emailAddress----邮箱(Email Address)
req_distinguished_name :根据情况进行修改
alt_names: 127.0.0.1修改为 服务器实际的 IP 或 DNS 地址,例如:IP.1 = 127.0.0.1,或 DNS.1 = broker.xxx.com
*/
4、使用服务器私钥生成证书签名请求 (CSR)
openssl req -new -key server.key -out server.csr -config csr.conf
5、使用根证书生成数字证书,先写好配置文件
//127.0.0.1修改为 EMQ X 服务器实际的 IP 或 DNS 地址,例如:IP.1 = 127.0.0.1,或
//DNS.1 = broker.xxx.com
cat > cert.conf <<EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
IP.1 = 192.168.6.236
EOF
6、使用自签名 CA 生成 SSL 证书
openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -days 365 -sha256 -extfile cert.conf
cert.conf 用来生成根证书(server.crt)的配置
csr.conf 用来生成向CA机构提申请的文件(server.csr)的配置
rootCA.crt 生成的自定义CA机构的拥有的证书
rootCA.key 生成的自定义CA机构的拥有的密钥
rootCA.srl
server.crt 服务器证书
server.csr 证书签名请求 (CSR),包含自己需要申请的服务器证书的配置信息
server.key 服务器私钥,用来生成(server.csr),想CA申请 服务器证书
nginx配置示例文章来源:https://www.toymoban.com/news/detail-471385.html
server {
listen 8088 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
server_name 192.168.6.236; #将localhost修改为您证书绑定的域名,例如:www.example.com。
#root html;
#index index.html index.htm;
ssl_certificate server.crt; #将domain name.pem替换成您证书的文件名。
ssl_certificate_key server.key; #将domain name.key替换成您证书的密钥文件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
charset utf-8;
#access_log logs/host.access.log main;
client_max_body_size 1024M;
client_body_buffer_size 2M;
error_page 497 https://$http_host$request_uri;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
#add_header Content-Security-Policy upgrade-insecure-requests;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://localhost:8080/;
}
location ~*/(upload|static|videos)/ {
root "D:\Msetp-platform\webapps\ROOT";
index index.html index.htm;
expires 1d;
}
}
7、生成tomcat需要的证书文章来源地址https://www.toymoban.com/news/detail-471385.html
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12
keytool -importkeystore -srckeystore server.p12 -destkeystore server.jks -srcstoretype pkcs12 -deststoretype jks
keytool -importkeystore -srckeystore server.jks -destkeystore server.jks -deststoretype pkcs12
到了这里,关于openssl生成自签名证书的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!