• 国标视频平台搭建(七)配置https访问


    其实截止到这里,基本平台就可以使用了,也可以配合其他业务系统,调用接口获得视频流。不过,默认都是http协议的。现在平台都要求使用Https协议,特别是小程序等三方平台,都会有基本安全性要求。这里说一下怎么改成https协议。

    前置条件

    1. 必须要有域名。虽然数字证书也有ip证书,但是会很麻烦,多数ca机构验证服务器需要用到80或443端口,也就是必须先备案,所以最好还是使用域名证书。

    2. 购买域名证书。根据安全级别要求自行配置。单域名(不支持通配符的),阿里云的域名都是可以免费申请的。(安全级别不高)如果需要更高级别的,可以自行购买。

    3. 完成域名到服务器的解析配置。

    wvp-pro

    wvp-pro新版本已经支持https协议部署,据说老版本可能这块有问题,建议使用最新版本。

    1. 域名证书一般会提供多个版本。这里建议直接使用nginx和jdk的证书。

    2. jdk证书包含jks文件和password文件。

    3. 将jks文件(jdk版本证书包中提供)、pem文件、key文件(nginx证书包中提供)上传到wvp服务器目录。

    4. 配置wvp应用的yml文件。

     配置完成后重启wvp应用。

    wvp平台本身就支持https协议访问了。嘛,目前wvp貌似仅支持单协议访问。启用了https后,就无法使用http协议访问了。

    且,https写一下,分屏监控下的播放器会无法播放视频。通道下的可以。这些问题就需要个人进行二开解决了。应该是由于播放器组件配置问题导致的。

     但是仅完成wvp的配置,并不能解决https应用下视频播放问题,因为你获取的流媒体播放地址,还是http协议的。所以需要继续配置ZMLMediaKit。

    ZMLMediaKit

    ZMLMediaKit你会发现,他只支持配置一个pem的证书文件。但是我们拿到的证书有pem和key文件两个。怎么办呢。

    好吧,其实就是俩txt文件,你用文本编辑器打开key文件,把里面的内容复制到pem文件后面,用这个pem文件替换掉ZMLMediaKit默认的default.pem文件,或者启动时指定pem文件路径就可以了。

    参考文件内容

    1. -----BEGIN CERTIFICATE-----
    2. MIIF/DCCBOSgAwIBAgIQClS8+rrDx51M3OVfzil+5zANBgkqhkiG9w0BAQsFADBu
    3. MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
    4. d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
    5. RFYgVExTIENBIC0gRzEwHhcNMjIxMDE0MDAwMDAwWhcNMjMxMDE1MjM1OTU5WjAe
    6. MRwwGgYDVQQDExNtZWRpYS53ZWlrYWltaW4udG9wMIIBIjANBgkqhkiG9w0BAQEF
    7. AAOCAQ8AMIIBCgKCAQEA7+lwEP0xV8fk5eJZW7oHsxtrlp92JwMlHW2p35U3imus
    8. oWBexWEXJR2b01AaiaCWURQPCetFxcSrqdm6wEUkYNvb9elF11J20Kai92hrzJVr
    9. BjoWUG1hLkstuDX4KXvrD2FN6yoQWfjO3cQq3u2HEebB2h2GjTXJFmUAFsdWh1z/
    10. DSnT0IFXz0Kr3VElOdCcm9hTfblTk/8Tc2DUgBt9N9cc3Q+lGMGIJRClI+QZ4SqD
    11. oihjIw1Dd3DNcBGDLsr//h4C1Uovj5d2ZL/wuYX6j9mLuwy3mX9WN/GxvbG2ieU2
    12. HE/2I41CQwKrsXhEtK0qbChuvFZBd4MoDrUH9q2plQIDAQABo4IC5DCCAuAwHwYD
    13. VR0jBBgwFoAUVXRPsnJP9WC6UNHX5lFcmgGHGtcwHQYDVR0OBBYEFPxRP2v44Cvr
    14. eM7iOWR3jDo427mWMB4GA1UdEQQXMBWCE21lZGlhLndlaWthaW1pbi50b3AwDgYD
    15. VR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA+BgNV
    16. HSAENzA1MDMGBmeBDAECATApMCcGCCsGAQUFBwIBFhtodHRwOi8vd3d3LmRpZ2lj
    17. ZXJ0LmNvbS9DUFMwgYAGCCsGAQUFBwEBBHQwcjAkBggrBgEFBQcwAYYYaHR0cDov
    18. L29jc3AuZGlnaWNlcnQuY29tMEoGCCsGAQUFBzAChj5odHRwOi8vY2FjZXJ0cy5k
    19. aWdpY2VydC5jb20vRW5jcnlwdGlvbkV2ZXJ5d2hlcmVEVlRMU0NBLUcxLmNydDAJ
    20. BgNVHRMEAjAAMIIBfwYKKwYBBAHWeQIEAgSCAW8EggFrAWkAdwDoPtDaPvUGNTLn
    21. Vyi8iWvJA9PL0RFr7Otp4Xd9bQa9bgAAAYPVEVOyAAAEAwBIMEYCIQDnuHF9flr+
    22. L41uKWDarXbPxvgiwC23b3GrcbQ+iEdQfAIhAIuJFwiH8HpdlnnFrg+qQBcEVFHk
    23. sVsqX837iGGSaJu9AHYAs3N3B+GEUPhjhtYFqdwRCUp5LbFnDAuH3PADDnk2pZoA
    24. AAGD1RFUGwAABAMARzBFAiEAoSktu2ssO/dk9uNWhLmfNmwp9aRMETcDNSGxqOi1
    25. I+MCIFy9/fQdzOs1+E5NjdQRh2JH7VAISou70iqehtqvG4gyAHYAtz77JN+cTbp1
    26. 8jnFulj0bF38Qs96nzXEnh0JgSXttJkAAAGD1RFT7AAABAMARzBFAiEAkKjjlawx
    27. 977w58Fm6jIxNv2DoYdPazCdCAV33H9T1NECIAM7lqyHm3XRE87skpRo4/STXHMW
    28. uWTYVakYD8zKuInwMA0GCSqGSIb3DQEBCwUAA4IBAQBqoQRatomA+qROI1bAEhs+
    29. nKkdk4lJnSYE3ZeBW4fX7+syOAoWE0xBrZrrTC0Rtuc5cWYJI+wdO0qk+sF3VOHZ
    30. XTI6zCs0PQuLT+x084khrz+buWEOx7yoVBKhqTLrFNn3e+mEAfP74d+TZUvRIEuq
    31. EoxOPYYlOAc0JwzRRfjPA224UaLc4E+y42WKjS4N9xoJk6qm2Xa0nl8jsUF5btN2
    32. 6Rvz2d5Flio3dr9nxWwT7iU7USnLYy07qNMEMg6xTXnLpaMFDPhlNhZdjXs1XuhW
    33. 0bkweXO72tLAbv5uzo2SH4WQPTHAbET4k1rVdWYd4w1uNvI2TDn0hI62HNp3xRsV
    34. -----END CERTIFICATE-----
    35. -----BEGIN CERTIFICATE-----
    36. MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh
    37. MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
    38. d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
    39. QTAeFw0xNzExMjcxMjQ2MTBaFw0yNzExMjcxMjQ2MTBaMG4xCzAJBgNVBAYTAlVT
    40. MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
    41. b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
    42. MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPeP6wkab41dyQh6mKc
    43. oHqt3jRIxW5MDvf9QyiOR7VfFwK656es0UFiIb74N9pRntzF1UgYzDGu3ppZVMdo
    44. lbxhm6dWS9OK/lFehKNT0OYI9aqk6F+U7cA6jxSC+iDBPXwdF4rs3KRyp3aQn6pj
    45. pp1yr7IB6Y4zv72Ee/PlZ/6rK6InC6WpK0nPVOYR7n9iDuPe1E4IxUMBH/T33+3h
    46. yuH3dvfgiWUOUkjdpMbyxX+XNle5uEIiyBsi4IvbcTCh8ruifCIi5mDXkZrnMT8n
    47. wfYCV6v6kDdXkbgGRLKsR4pucbJtbKqIkUGxuZI2t7pfewKRc5nWecvDBZf3+p1M
    48. pA8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRVdE+yck/1YLpQ0dfmUVyaAYca1zAf
    49. BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTAOBgNVHQ8BAf8EBAMCAYYw
    50. HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
    51. AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
    52. Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
    53. Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
    54. /WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
    55. MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAK3Gp6/aGq7aBZsxf/oQ+TD/B
    56. SwW3AU4ETK+GQf2kFzYZkby5SFrHdPomunx2HBzViUchGoofGgg7gHW0W3MlQAXW
    57. M0r5LUvStcr82QDWYNPaUy4taCQmyaJ+VB+6wxHstSigOlSNF2a6vg4rgexixeiV
    58. 4YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ
    59. sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy
    60. rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg==
    61. -----END CERTIFICATE-----
    62. -----BEGIN RSA PRIVATE KEY-----
    63. MIIEogIBAAKCAQEA7+lwEP0xV8fk5eJZW7oHsxtrlp92JwMlHW2p35U3imusoWBe
    64. xWEXJR2b01AaiaCWURQPCetFxcSrqdm6wEUkYNvb9elF11J20Kai92hrzJVrBjoW
    65. UG1hLkstuDX4KXvrD2FN6yoQWfjO3cQq3u2HEebB2h2GjTXJFmUAFsdWh1z/DSnT
    66. 0IFXz0Kr3VElOdCcm9hTfblTk/8Tc2DUgBt9N9cc3Q+lGMGIJRClI+QZ4SqDoihj
    67. Iw1Dd3DNcBGDLsr//h4C1Uovj5d2ZL/wuYX6j9mLuwy3mX9WN/GxvbG2ieU2HE/2
    68. I41CQwKrsXhEtK0qbChuvFZBd4MoDrUH9q2plQIDAQABAoIBACpisShnOyD5kXCl
    69. 4Uip4LNdjFADozG4RgXheookSDg91rV6G7Q+d4LYrM+UDuQyyWvQoemMNfr/SJ7M
    70. 90gBzzAHl+Bl0q98g75QOmmAes8dtNdYStnxwSIXKSAq9MmLeZdxhv0dpN7obM/U
    71. WQiiqWLZxHTfE4b+MiUxOedMV3a5eUDFK4+TROtD+33LT34P/2mXBgIO+EmbXgK8
    72. ra7QRVYnU86UnDa2JGT0WdNszOqatzk7UvhU+YM5sPk7LmTjda0dTnIZMYGyeo5H
    73. COTcA/Pn9OptbRLKzt85cT7Pav4ciFSXlC+7zhQ32TSaoxcvXl3bQUWJKM0FZ5f7
    74. VELzN/8CgYEA/0NbkjHn/r+jLa/WqvlJ8lJFYgYVtqywK2umAUXH+Z2J839oLCBE
    75. W0w9Zi9j94O3Ai+xmp7z/TCQg1uIFcZWuqWQP8+gbnf7lOfp8GIEEJ0TvagEg0mE
    76. GwnO5MdgpxKpS2gq2LKNeh+kSfgd99zGiwKhTGmtGjZLp1er2s9ujqMCgYEA8Jq8
    77. PY6StDg1P7jUqzH6WFAWOAeH98M+VRXPRHx4Gkt0J0GhtNZX5T3lNxEY0WaJE+S8
    78. +lZavtlZmizatjnACky22hAS5VJgobHdWV6vJNcEARLQf5Hh94i8TLJhVnL3XcAC
    79. S/cB+Y2p8bR99Y6mykdG4Ta3Ho/CAgyz2UXnAmcCgYB67quJCrPZwd0KQaa2jHwK
    80. UYjMnnWSljP5lUxLTJn0IuSu+ernZVrGRT9EmQohx7M5QFLeTjLe+qZ+PHSbV/uo
    81. w9dmg82Vpf7pRY8qj2m5vowlSGdz+tG+W8jh8QshKyGRCUepOMRdziNG5FE6b37G
    82. r6uSq0oMV52zp8tCA6gQ1QKBgG6dlQFv9L5qQQDkxtFWDtRfLXfg7n/YAWY4uquv
    83. 1b+xBNuvbtqm2I4KIMFqWNCcpVTCCqfE379ySaF6EatJbaLOlho23ZkUgFyWWz9l
    84. KnxzZeHgdn7P4OVetcNFFz8ZZ+RwDB5El2HV4VXAN1CXntLMZifQcevZB8bNdDnl
    85. y0jtAoGAMi6A7PnuEtBfRuTeQ7tBfcbzAKYdv88kH+3lnjgDY/xvNKm+GVzOZn4p
    86. dh1gwWrmdMrkCg8IUw7PS71VOc+s05HmVhGkpaaYg+KYQMmFkekec/OokoLaBqFA
    87. f3xbS6Q0bLld5dzGYvQaLqxhGpOgdlVUs6oSSLI9U06W9VdP2MU=
    88. -----END RSA PRIVATE KEY-----

    然后重启ZML的服务。记得加载ssl文件路径(或者替换default.pem)

    总结

    渠道wvp平台设备管理中,打开通道预览。

    你会发现播放地址改成了https的地址。

    当然,play接口返回的播放地址,也都变成了https的地址。

    然后你就可以在https的应用下播放视频了。 

    补充,重要,之前漏了这个问题,好多人问。

    ZLM启用https需要新版本openssl的支持,绝大多数系统需要升级openssl,具体其实git上有说明:

    ZLM启用https说明

    还是那句话,优先看官方文档,看仔细。绝大多数问题官方都有,别人写的东西记得都是自己操作的重点内容,有所遗漏在所难免。

  • 相关阅读:
    使用SQL的灵魂(精华)
    【云原生之Docker实战】使用Docker部署Lanraragi个人漫画管理器
    使用idea创建多模块Maven项目(模块间的继承与依赖)
    CCCorelib 点云法向量计算之拟合曲面(CloudCompare内置算法库)
    23种设计模式之模板方法模式(Template Method Pattern)
    野火 STM32MP157 开发板内核和设备树的编译烧写
    基于springboot的ShardingSphere5.2.1的分库分表的解决方案之分库分表解决方案(二)
    解决 VSCode 配置远程连接,过程试图写入的管道不存在
    Maven——maven依赖管理以及常用设置
    2023-09-09青少年软件编程(C语言)等级考试试卷(二级)解析
  • 原文地址:https://blog.csdn.net/lanwilliam/article/details/127409829