启用ssl模块,执行如下命令:

java -jar $JETTY_HOME/start.jar --add-modules=ssl

命令的输出,如下:

INFO  : ssl             initialized in ${jetty.base}/start.d/ssl.ini
INFO : Base directory was modified

查看ssl模块的配置文件,执行如下命令:

cat $JETTY_BASE/start.d/ssl.ini

命令的输出,如下:


# ---------------------------------------
# Module: ssl
# Enables a TLS (SSL) connector to support secure protocols.
# Secure HTTP/1.1 is provided by enabling the "https" module and secure HTTP/2 is provided by enabling the "http2" module.
# ---------------------------------------
--modules=ssl ### TLS (SSL) Connector Configuration ## The host/address to bind the connector to.
# jetty.ssl.host=0.0.0.0 ## The port the connector listens on.
# jetty.ssl.port=8443 ## The connector idle timeout, in milliseconds.
# jetty.ssl.idleTimeout=30000 ## The number of acceptors (-1 picks a default value based on number of cores).
# jetty.ssl.acceptors=1 ## The number of selectors (-1 picks a default value based on number of cores).
# jetty.ssl.selectors=-1 ## The ServerSocketChannel accept queue backlog (0 picks the platform default).
# jetty.ssl.acceptQueueSize=0 ## The thread priority delta to give to acceptor threads.
# jetty.ssl.acceptorPriorityDelta=0 ## Whether to enable the SO_REUSEADDR socket option.
# jetty.ssl.reuseAddress=true ## Whether to enable the SO_REUSEPORT socket option.
# jetty.ssl.reusePort=false ## Whether to enable the TCP_NODELAY socket option on accepted sockets.
# jetty.ssl.acceptedTcpNoDelay=true ## The SO_RCVBUF socket option to set on accepted sockets.
## A value of -1 indicates that the platform default is used.
# jetty.ssl.acceptedReceiveBufferSize=-1 ## The SO_SNDBUF socket option to set on accepted sockets.
## A value of -1 indicates that the platform default is used.
# jetty.ssl.acceptedSendBufferSize=-1 ## Whether client SNI data is required for all secure connections.
## When SNI is required, clients that do not send SNI data are rejected with an HTTP 400 response.
# jetty.ssl.sniRequired=false ## Whether client SNI data is checked to match CN and SAN in server certificates.
## When SNI is checked, if the match fails the connection is rejected with an HTTP 400 response.
# jetty.ssl.sniHostCheck=true ## The max age, in seconds, for the Strict-Transport-Security response header.
# jetty.ssl.stsMaxAgeSeconds=31536000 ## Whether to include the subdomain property in any Strict-Transport-Security header.
# jetty.ssl.stsIncludeSubdomains=true ### SslContextFactory Configuration
## Note that OBF passwords are not secure, just protected from casual observation. ## Whether client SNI data is required for all secure connections.
## When SNI is required, clients that do not send SNI data are rejected with a TLS handshake error.
# jetty.sslContext.sniRequired=false ## The Endpoint Identification Algorithm.
## Same as javax.net.ssl.SSLParameters#setEndpointIdentificationAlgorithm(String).
# jetty.sslContext.endpointIdentificationAlgorithm= ## The JSSE Provider.
# jetty.sslContext.provider= ## The KeyStore file path, either an absolute path or a relative path to $JETTY_BASE.
# jetty.sslContext.keyStorePath=etc/keystore.p12 ## The TrustStore file path, either an absolute path or a relative path to $JETTY_BASE.
# jetty.sslContext.trustStorePath=etc/keystore.p12 ## The KeyStore password.
# jetty.sslContext.keyStorePassword= ## The Keystore type.
# jetty.sslContext.keyStoreType=PKCS12 ## The KeyStore provider.
# jetty.sslContext.keyStoreProvider= ## The KeyManager password.
# jetty.sslContext.keyManagerPassword= ## The TrustStore password.
# jetty.sslContext.trustStorePassword= ## The TrustStore type.
# jetty.sslContext.trustStoreType=PKCS12 ## The TrustStore provider.
# jetty.sslContext.trustStoreProvider= ## Whether client certificate authentication is required.
# jetty.sslContext.needClientAuth=false ## Whether client certificate authentication is desired, but not required.
# jetty.sslContext.wantClientAuth=false ## Whether cipher order is significant.
# jetty.sslContext.useCipherSuitesOrder=true ## The SSLSession cache size.
# jetty.sslContext.sslSessionCacheSize=-1 ## The SSLSession cache timeout (in seconds).
# jetty.sslContext.sslSessionTimeout=-1 ## Whether TLS renegotiation is allowed.
# jetty.sslContext.renegotiationAllowed=true ## The max number of TLS renegotiations per connection.
# jetty.sslContext.renegotiationLimit=5

各参数的说明,如下:

  • Connector对象的参数

    • jetty.ssl.host

      监听地址,默认值为0.0.0.0,表示在本机所有的IP均可接收请求。
    • jetty.ssl.port

      SSL服务的监听端口,默认值为8443
    • jetty.ssl.idleTimeout

      SSL链接处于空闲状态的超时值,超时后链接被自动释放,单位:毫秒,默认值为30000,即30秒。
    • jetty.ssl.acceptors

      accept对象的数量,默认值为1。取值为-1时,表示依据CPU核的数量来推算accept对象的数量。
    • jetty.ssl.selectors

      selector对象的数量,默认值为1。取值为-1时,表示依据CPU核的数量来推算selector对象的数量。
    • jetty.ssl.acceptQueueSize

      accept操作的backlog中请求的数量,默认值为0,表示使用操作系统的默认值。
    • jetty.ssl.acceptorPriorityDelta

      执行accept操作的线程的运行期优先级,默认值为0

      依据JDK中线程的文档,不同平台下线程运行优先级的实现存在比较大的差异,因此为保障代码的可移植性和正确性,业务逻辑的正确性不应对线程的优先级做出假设或者依赖。
    • jetty.ssl.reuseAddress

      对应socket选项SO_REUSEADDR,默认值为true
    • jetty.ssl.reusePort

      对应socket选项SO_REUSEPORT,默认值为false
    • jetty.ssl.acceptedTcpNoDelay

      对应socket选项TCP_NODELAY,默认值为true
    • jetty.ssl.acceptedReceiveBufferSize

      接收数据的缓冲区的大小,对应socket选项SO_RCVBUF,默认值为-1,表示使用操作系统的默认值。
    • jetty.ssl.acceptedSendBufferSize

      发送数据的缓冲区的大小,对应socket选项SO_SNDBUF,默认值为-1,表示使用操作系统的默认值。
    • jetty.ssl.sniRequired

      客户的SNI数据是否必需,默认值为false
    • jetty.ssl.sniHostCheck

      是否校验客户的SNI数据中的CNSAN
    • jetty.ssl.stsMaxAgeSeconds

      返回HTTP安全头部Strict Transport Security时,max-age字段的取值,单位:秒,默认值为31536000

      参考资料:

    • jetty.ssl.stsIncludeSubdomains

      返回HTTP安全头部Strict Transport Security时,是否包含includeSubDomains字段,默认值为true

      参考资料:

  • SslContextFactory对象的参数
    • jetty.sslContext.sniRequired

      所有安全链接中,客户的SNI数据是否必需,默认值为false
    • jetty.sslContext.endpointIdentificationAlgorithm

      javax.net.ssl.SSLParameters#setEndpointIdentificationAlgorithm(String)
    • jetty.sslContext.provider
    • jetty.sslContext.keyStorePath

      KeyStore文件的路径,支持使用相对于$JETTY_BASE的路径,也可以使用绝对路径。
    • jetty.sslContext.trustStorePath

      TrustStore文件的路径,支持使用相对于$JETTY_BASE的路径,也可以使用绝对路径。
    • jetty.sslContext.keyStorePassword

      KeyStore文件的口令。
    • jetty.sslContext.keyStoreType

      KeyStore文件的类型,默认值为PKCS12
    • jetty.sslContext.keyStoreProvider
    • jetty.sslContext.keyManagerPassword

      KeyManager的口令。
    • jetty.sslContext.trustStorePassword

      TrustStore文件的口令。
    • jetty.sslContext.trustStoreType

      TrustStore文件的类型,默认值为PKCS12
    • jetty.sslContext.trustStoreProvider
    • jetty.sslContext.needClientAuth

      是否需要执行客户端认证,默认值为false
    • jetty.sslContext.wantClientAuth

      是否期望执行客户端认证,默认值为false
    • jetty.sslContext.useCipherSuitesOrder

      是否验证加密顺序,默认值为true
    • jetty.sslContext.sslSessionCacheSize

      SSLSession缓存占用的容量,默认值为-1
    • jetty.sslContext.sslSessionTimeout

      SSLSession缓存的超时值,单位:秒,默认值为-1
    • jetty.sslContext.renegotiationAllowed

      是否允许尝试重复执行TLS协商,默认值为true
    • jetty.sslContext.renegotiationLimit

      单个通信链接,TLS协商次数的上限值,默认值为5

Jetty的ssl模块的更多相关文章

  1. python安装完毕后,提示找不到ssl模块的解决步骤

    转载自 醇酒醉影 python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, ...

  2. 编译安装带ssl 模块指定版本Python

      出现这个或者fatal error: openssl/名单.h: No such file or directory.都是没有安装libssl-dev- libssl-dev包含libraries ...

  3. nginx使用ssl模块配置支持HTTPS访问

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求: 做一个网站域名为 www.localhost.cn 要求通过htt ...

  4. nginx使用ssl模块配置HTTPS支持

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这 ...

  5. python安装完毕后,提示找不到ssl模块的解决方示

    python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, 11:08:43) ...

  6. Windows下Apache添加SSL模块

    参考资料:http://www.yuansir-web.com/2011/05/12/hello-world/测试环境:windows2003 32位 + Apache2.4 + PHP5.4 一.准 ...

  7. nginx使用ssl模块配置支持HTTPS访问【解决ssl错误】

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求:做一个网站域名为 www.localhost.cn 要求通过http ...

  8. Python3中无法导入ssl模块的解决办法

    这个问题,已经困扰我好几天了,本萌新刚开始接触python,想爬取几个网页试试,发现urllib无法识别https,百度后才知道要导入ssl模块,可是发现又报错了. 本人实在无法理解为什么会报错,因为 ...

  9. Nginx下配置SSL模块,支持https

    Http与Https的区别 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效 ...

  10. pip命令出现了问题,提示说找不到ssl模块

    Could not find a version that satisfies the requirement pygame (from versions: ) No matching distrib ...

随机推荐

  1. urllib模块常用方法

    import urllib.parse ## urlparse() 对url进行解析,并对url按照一定格式进行拆分,返回一个包含6个字符串的元组(协议,位置,路径,参数,查询,判断), 可以将获得的 ...

  2. Android Compose开发

    目录 好处 入门 Composable 布局 其他组件 列表 verticalScroll 延迟列表 内容内边距 性能 修饰符 偏移量 requiredSize 滚动 添加间距Spacer Butto ...

  3. EF Invalid column name 'Discriminator' Invalid column name 'TagCode'.

    参考资料:Invalid column name 'TagCode'. 该异常和Discriminator没关系,一般原因:1.数据库中字段和实体类字段不一致导致的2.创建新增继承于数据库对应的实体类 ...

  4. 【Azure Developer】使用 Azure PowerShell 执行 Azure 表存储操作时遇见的4个问题

    要使用PowerShell操作Azure的表存储,需要经过以下步骤: 1:必须安装 Az 和 AzTable 模块.安装命令为: #安装 Az 模块 Install-Module -Name Az - ...

  5. 机器学习策略篇:详解训练/开发/测试集划分(Train/dev/test distributions)

    训练/开发/测试集划分 设立训练集,开发集和测试集的方式大大影响了或者团队在建立机器学习应用方面取得进展的速度.同样的团队,即使是大公司里的团队,在设立这些数据集的方式,真的会让团队的进展变慢而不是加 ...

  6. C++ //set/multiset 容器 //set不可以插入重复的数字 multiset可以插入重复的数字 //ste容器构造和赋值 //set大小和交换 //set 插入和删除 //set查找和统计 //set 和 multiset 区别 //pair 对组创建 //set存放自定义数据类型 //set内置数据 进行排序

    1 //set/multiset 容器 //set不可以插入重复的数字 multiset可以插入重复的数字 2 //ste容器构造和赋值 //set大小和交换 //set 插入和删除 3 //set查 ...

  7. C++ 错误 具有类型“const sort”的表达式会丢失一些 const-volatile 限定符以调用“bool sort::operator ()(int,int)” 如下:环境 vs2019 内容:set内置函数排序

    C++ 错误 具有类型"const sort"的表达式会丢失一些 const-volatile 限定符以调用"bool sort::operator ()(int,int ...

  8. MongoDB可视化compass 连接数据库失败Invalid UTF-8 string in BSON document

    An error occurred while loading navigation: Invalid UTF-8 string in BSON document 出现这个问题建议降低compass版 ...

  9. centos7 开机自动执行脚本

    1.因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2.赋予脚本可执行权限假设/usr/loc ...

  10. 真实开发中-redis在项目中的应用场景

    一.需求描述 从自己当前负责参与开发的一个项目中来看,redis主要的应用场景有如下几个,第一个是保存用户信息,这个需要频繁的获取.比如 在打开某一个页面进行查询时,就先需要获取用户信息,看用户是否具 ...