jetty nginx 配置https

来源:互联网 发布:我想做淘宝兼职 编辑:程序博客网 时间:2024/05/29 16:53

jetty作为http长连接的轻量级容器,越来越受欢迎,配置https折腾一天特此记录。


#生成证书文件 
keytool -genkey -alias xgjkey -keystore xgjkeystore -keypass xgjkeystorepass -storepass xgjkeystorepass -keyalg RSA -validity 3650  -dname "cn=xgj, ou=mengying, l=SZ, S=JS, o=Lively, c=CN"


#导出证书文件
keytool -alias xgjkey -exportcert -keystore xgjkeystore -file xgj.cer


#导入cer 至JAVA环境
keytool -keystore xgjkeystore -import -alias xgjkey -file C:\Users\lw\xgj.cer -trustcacerts


jetty 嵌入https的代码网上有一堆,大致如下:

SslContextFactory sslContextFactory = new SslContextFactory(keyStorePath);sslContextFactory.setKeyStorePassword("xgjkeystorepass");sslContextFactory.setKeyManagerPassword("xgjkeystorepass");ServerConnector sslConnector = new ServerConnector(this.server, new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.toString()), new HttpConnectionFactory(httpConfig));sslConnector.setPort(sslPort);sslConnector.setAcceptQueueSize(100);sslConnector.setIdleTimeout(500000);

注意:

1.配置https必须把证书导入到JAVA环境,linux环境最好是重新登录后启动应用。

2.不要配置sslContextFactory.setIncludeCipherSuites 加密方式,因为拷贝网上代码,导致无法访问,也无报错。

3.证书在chrom浏览器中不信任,需要手动确认。


nginx 配置ssl

# 生成一个RSA密钥 openssl genrsa -des3 -out xgj.key 1024 # 拷贝一个不需要输入密码的密钥文件openssl rsa -in xgj.key -out xgj_nopass.key # 生成一个证书请求$ openssl req -new -key xgj.key -out xgj.csr # 自己签发证书$ openssl x509 -req -days 3650 -in xgj.csr -signkey xgj.key -out xgj.crt


配置ssl.conf
    ssl                  on;    ssl_certificate      /etc/nginx/conf.d/xgj.crt;    ssl_certificate_key  /etc/nginx/conf.d/xgj_nopass.key;





0 0