基于 openssl 及 keytool 创建 ssl 证书并配置到 nginx 和 tomcat

1、openssl 创建 crt 证书示例

openssl genrsa -des3 -out server.key 2048 -passout DwpPAd23xzvZTn09RmMuZKe3T4FeXfhM

openssl req -utf8 -new -newkey rsa:2048 -nodes \
    -keyout server.key -out server.csr \
    -subj "/C=CN/ST=湖北/L=武汉/O=吉奥时空信息技术有限公司/CN=吉奥时空信息技术有限公司"

openssl x509 -req -days 7300 -in server.csr -signkey server.key -out server.crt

 

2、nginx 配置 crt 证书示例

server {
    listen 9011 ssl;
    ssl_certificate /ssl/server.crt;
    ssl_certificate_key /ssl/server.key;
    error_page 497 301 https://$http_host$request_uri;
    client_max_body_size 1024M;
    location /Usersystem {
        proxy_pass https://172.16.20.132:8081;
        proxy_set_header Host $host:$server_port;
        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 Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

 

3、keytool 创建 keystore 证书示例

keytool -genkey \
 -alias tomcat \
 -keyalg RSA \
 -storetype pkcs12 \
 -validity 7300 \
 -keystore /ssl/server.keystore \
 -keysize 2048 \
 -keypass DwpPAd23xzvZTn09RmMuZKe3T4FeXfhM \
 -storepass DwpPAd23xzvZTn09RmMuZKe3T4FeXfhM \
 -dname "CN=吉奥时空信息技术有限公司, OU=吉奥时空信息技术有限公司, O=吉奥时空信息技术有限公司, L=武汉, S=湖北, C=中国"

如需添加 SAN 信息则 通过 -ext 参数实现,如:

keytool -genkey \
 -alias tomcat \
 -keyalg RSA \
 -storetype pkcs12 \
 -validity 7300 \
 -keystore /ssl/server.keystore \
 -keysize 2048 \
 -keypass DwpPAd23xzvZTn09RmMuZKe3T4FeXfhM \
 -storepass DwpPAd23xzvZTn09RmMuZKe3T4FeXfhM \
 -dname "CN=吉奥时空信息技术有限公司, OU=吉奥时空信息技术有限公司, O=吉奥时空信息技术有限公司, L=武汉, S=湖北, C=中国" \
 -ext SAN=dns:test.abc.com,ip:172.16.20.132

 

4、tomcat 配置证书使用

tomcat 开启 https 配置须在 /srv/tomcat8/conf/server.xml 文件的 <Connector port="8080" 下添加一个新的 Connector:

<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
           port="8443" maxThreads="200" URIEncoding="UTF-8"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="/ssl/server.keystore" keystorePass="DwpPAd23xzvZTn09RmMuZKe3T4FeXfhM"
           clientAuth="false" sslProtocol="TLS"/>

 

5、附赠一个 crt 证书转 keystore 证书实例:

openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12

keytool -importkeystore -v \
-srckeystore server.p12 \
-srcstoretype pkcs12 \
-srcstorepass DwpPAd23xzvZTn09RmMuZKe3T4FeXfhM \
-destkeystore server.keystore \
-deststoretype jks \
-deststorepass DwpPAd23xzvZTn09RmMuZKe3T4FeXfhM

 

posted @ 2022-07-07 15:52  Nihaorz  阅读(670)  评论(0编辑  收藏  举报