为了云服务器能支持https请求,必须安装SSL证书。步骤为:
(1)申请SSL证书,例如在腾讯云上申请;
(2)下载申请得到的证书,把tomcat文件夹里面的.jks上传到jetty安装目录下的etc/jks中(文件夹中有另一 个.txt是密码,与该jks 配套使用,不配套则无效);
(3)修改jetty配置。
下面主要介绍如何修改jetty配置:
1.修改jetty安装目录下etc中的jetty-ssl-context.xml(此处为9.2版本,早期版本是jetty-ssl.xml)。找到sslContextFactory这么一个配置,把以下代码扔进去,其中注意粗体部分,密码就是之前下载的tomcat文件夹中的txt文本,另外那个粗体路径就是jks文件的存放路径。
<Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="etc/jks/yanoo.xyz.jks"/></Set>
<Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="11i32r2hj9kj60"/></Set>
<Set name="KeyManagerPassword"><Property name="jetty.keymanager.password" default="11i32r2hj9kj60"/></Set>
<Set name="TrustStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.truststore" default="etc/jks/yanoo.xyz.jks"/></Set>
<Set name="TrustStorePassword"><Property name="jetty.truststore.password" default="11i32r2hj9kj60"/></Set>
<Set name="EndpointIdentificationAlgorithm"></Set>
<Set name="NeedClientAuth"><Property name="jetty.ssl.needClientAuth" default="false"/></Set>
<Set name="WantClientAuth"><Property name="jetty.ssl.wantClientAuth" default="false"/></Set>
<Set name="ExcludeCipherSuites">
<Array type="String">
<Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
<Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
<Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
<Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
<Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
<Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
<Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
</Array>
</Set>
弄完大概长这样
2.修改jetty安装目录下的start.ini文件,在最后加上:
--module=ssl
jetty.server.dumpBeforeStop=
etc/jetty-ssl.xml
etc/jetty-https.xml
效果图:
3.最后重启jetty就大功告成了。
PS:另一种方法使用第三方生成的SSL证书,参考https://blog.youkuaiyun.com/fjz_lihuapiaoxiang/article/details/78921418