基于 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