容器配置https
生成秘钥库
通过jdk
的keytool
工具生成秘钥库
keytool -genkeypair -alias "localhost" -keyalg "RSA" -keystore "d:\localhost.keystore"
参考示例:
如果不想这么复杂可以参考如下示例:
keytool -genkey -keystore "d:\localhost.keystore" -alias "localhost" -keyalg "RSA" -validity 365 -dname "CN=localhost, OU=org, O=org.cj, L=昆明, ST=云南, C=中国" -keypass lcoalhost -storepass localhost
导出证书
keytool -alias "localhost" -exportcert -keystore "d:\localhost.keystore" -file "d:\localhost.cer" -storepass "123456"
tomcat
修改tomcat/conf的server.xml
文件
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="d:\localhost.keystore" keystorePass="123456" />
tomcat/bin/startup.bat
)。chrome浏览器默认会报 连接不安全 。
可以通过如下方式导入证书,详细细节可以参考安装tomcat的证书在浏览器中。
扩展
nginx
.pem文件是证书文件,采用Base64-encoded的PEM格式文本文件。
.key文件是证书的私钥文件
server { listen 443; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/a.pem; # 证书文件 ssl_certificate_key cert/a.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; location / { root html; index index.html index.htm; } }
nginx -t
可以检查配置文件是否修改正确 nginx -s reload
可以热重启
Apache
_public.crt文件是证书文件,
_chain.crt是证书链(中间证书)文件,
.key文件是证书的私钥文件
.crt扩展名的证书文件采用Base64-encoded的PEM格式文本文件
修改apache/conf
目录下的httpd.conf
文件,找到以下内容并去掉“#”:
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf
打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句:
# 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on # 证书公钥配置 SSLCertificateFile cert/a_public.crt # 证书私钥配置 SSLCertificateKeyFile cert/a.key # 证书链配置,如果该属性开头有 '#'字符,请删除掉 SSLCertificateChainFile cert/a_chain.crt
重启容器
tomcat
PFX证书安装
修改tomcat/conf
下面的server.xml
文件。
添加如下内容:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" keystoreFile="cert/a.pfx" keystoreType="PKCS12" keystorePass="证书密码" clientAuth="false" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
JKS证书安装
将PFX证书转成JSK格式
keytool -importkeystore -srckeystore a.pfx -destkeystore a.jks -srcstoretype PKCS12 -deststoretype JKS
回车后输入JKS证书密码和PFX证书密码,强烈推荐将JKS密码与PFX证书密码相同,否则可能会导致Tomcat启动失败。
修改tomcat/conf
下面的server.xml
文件。
添加如下内容:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" keystoreFile="cert/a.jks" keystorePass="证书密码" clientAuth="false" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>
IIS
Jetty
posted on 2018-11-27 17:25 Luis、Yang、 阅读(840) 评论(0) 编辑 收藏 举报