多协议、性能稳定、丰富API的流媒体服务器软件
如何调整SSL通信的相关配置?
这篇文章介绍了如何对Wowza Streaming Engine™上的SSL通信相关的参数进行配置。包括SSLConfig/CipherSuites 以及 SSLConfig/Protocols.

大纲


必要条件
SSL相关参数的配置
对SSL cipher 和 protocol 信息打印日志
调试 SSL 连接

必要条件


要使用本文介绍的功能,您必须先确认:


SSL相关参数的配置


对SSL cipher 和 protocol 信息打印日志

sslLogProtocolInfo参数会让Wowza Streaming Engine在启动时将SSL cipher 和 protocol 信息打印在日志中。这些日志信息可以协助我们配置SSLConfig/CipherSuites 和 SSLConfig/Protocols 中的参数。

在Wowza Streaming Engine Manager 管理界面中配置

  1. 在Wowza Streaming Engine Manager管理界面点击Server菜单,再点击Server Setup.

  2. Server Setup页面,点击PropertiesTab页,然后在Quick Links的导航上点击Custom in the bar.

  3. Custom区域,点击Edit.

  4. 点击Add Custom Property,在Add Custom Property的对话框中,填写下面的信息,再点击Add:

    • Path - Select /Root/Server.

    • Name - Enter sslLogProtocolInfo.

    • Type - Select Boolean.

    • Value - Enter true.

  5. 点击 Save,然后重启Wowza服务器让配置生效

在XML中配置

  1. 用文本编辑器打开[install-dir]/conf/Server.xml文件,然后在<Properties>中加入以下参数:
    <Property>
    	<Name>sslLogProtocolInfo</Name>
    	<Value>true</Value>
    	<Type>Boolean</Type>
    </Property>
  2. 重启Wowza Streaming Engine,让配置生效.

sslLogProtocolInfo 设置为 true 将使得在log日志中打印类似如下信息:
SSLInfo.CipherSuitesSupported: TLS_ECDH_ECDSA_WITH_NULL_SHA,TLS_DH_anon_WITH_AES_128_CBC_SHA256,TLS_ECDH_anon_WITH_RC4_128_SHA,TLS_DH_anon_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_KRB5_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_KRB5_EXPORT_WITH_RC4_40_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_ECDH_ECDSA_WITH_RC4_128_SHA,TLS_ECDH_anon_WITH_NULL_SHA,TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_NULL_SHA256,TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA,TLS_KRB5_WITH_RC4_128_MD5,SSL_RSA_WITH_DES_CBC_SHA,TLS_ECDHE_ECDSA_WITH_NULL_SHA,TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_RC4_128_SHA,TLS_EMPTY_RENEGOTIATION_INFO_SCSV,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,TLS_KRB5_WITH_3DES_EDE_CBC_MD5,TLS_KRB5_WITH_RC4_128_SHA,SSL_DH_anon_WITH_DES_CBC_SHA,TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_NULL_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,TLS_KRB5_WITH_DES_CBC_MD5,TLS_KRB5_EXPORT_WITH_RC4_40_MD5,TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5,SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,TLS_ECDH_anon_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,SSL_DH_anon_EXPORT_WITH_RC4_40_MD5,SSL_DHE_DSS_WITH_DES_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_KRB5_WITH_DES_CBC_SHA,SSL_RSA_WITH_NULL_MD5,SSL_DH_anon_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,SSL_DHE_RSA_WITH_DES_CBC_SHA,TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA,SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,SSL_RSA_WITH_NULL_SHA,TLS_ECDHE_RSA_WITH_NULL_SHA,SSL_DH_anon_WITH_RC4_128_MD5,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_RC4_128_MD5,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA
SSLInfo.CipherSuitesDefault: TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA,TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_ECDH_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_RC4_128_SHA,TLS_EMPTY_RENEGOTIATION_INFO_SCSV,TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_RC4_128_MD5,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA
SSLInfo.ProtocolsSupported: SSLv2Hello,SSLv3,TLSv1,TLSv1.1,TLSv1.2
SSLInfo.ProtocolsDefault: SSLv3,TLSv1
其中:

  • SSLInfo.CipherSuitesSupported 是Java VM支持的所有cipher suites 列表.

  • SSLInfo.CipherSuitesDefault 是当SSLConfig/CipherSuites参数是空时,默认被使用的cipher suites.

  • SSLInfo.ProtocolsSupported 是Java VM支持的所有protocols列表.

  • SSLInfo.ProtocolsDefault 是当SSLConfig/Protocols参数是空时,默认被使用的protocols列表.

你可以用这些cipher suites 和 protocols 配置你的SSL通信参数.

注意:当你用Wireshark监测SSL连接的通信双方交换的信息时,Wowza Streaming Engine 总是会展示相同的12个cipher suites, 即使您已经删除了某个cipher suite。任何被删除掉的cipher suites 在加密算法协商时不会被使用

调试 SSL 连接

sslLogConnectionInfo 参数可以被用于debug SSL 连接,你只要让Wowza服务器打印SSL链接信息即可。包括每一个SSL/HTTPS(protocol 和 cipher suite)信息。

在Wowza Streaming Engine Manager 管理界面中配置

  1. 在Wowza Streaming Engine Manager管理界面中点击Server,然后点击Virtual Host Setup.

  2. Virtual Host Setup页面,点击PropertiesTab页,再点击Quick Links导航条的Custom.

  3. Custom区域,点击Edit.

  4. 点击Add Custom Property,在Add Custom Property对话框输入下面的参数,然后点击Add:

    • Path - Select /Root/VHost.

    • Name - Enter sslLogConnectionInfo.

    • Type - Select Boolean.

    • Value - Enter true.

  5. 点击Save,然后重启virtual host 让配置生效.

在XML中配置

  1. 用文本编辑器打开[install-dir]/conf/[application]/VHost.xml文件,在文件底部的<Properties>中添加以下参数.
    <Property>
    	<Name>sslLogConnectionInfo</Name>
    	<Value>true</Value>
    	<Type>Boolean</Type>
    </Property>
  • 重启Wowza Streaming Engine软件让配置生效.

  • sslLogConnectionInfo 设置为 true 将使得在Log日志中打印以下信息:
    SSLHandler.connectionInfo: protocol:TLSv1.2 cipher:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256