为什么Icecast2不想通过https给出流?

2023-11-27

在具有 Ubuntu 14.04 LTS 的服务器上安装了支持 SSL 的 Icecast2 2.4.1。也在该服务器上运行 HTTPS 网站。 我想在页面上插入 HTML5 播放器,该播放器也将通过 SSL 获取流(否则 - 混合内容错误)。 该网站有一个商业 SSL 证书,Icecast - 自签名。 Icecast配置文件:

<icecast>
<location>****</location>
<admin>admin@*************</admin>
<limits>
    <clients>1000</clients>
    <sources>2</sources>
    <threadpool>5</threadpool>
    <queue-size>524288</queue-size>
    <source-timeout>10</source-timeout>
    <burst-on-connect>0</burst-on-connect>
    <burst-size>65535</burst-size>
</limits>
<authentication>
    <source-password>*****</source-password>
    <relay-password>*****</relay-password>
    <admin-user>*****</admin-user>
    <admin-password>*****</admin-password>
</authentication>
<hostname>************</hostname> 
<listen-socket>
    <port>8000</port>
    <ssl>1</ssl>
</listen-socket>
<mount>
    <mount-name>/stream</mount-name>
    <charset>utf-8</charset>
</mount>
<mount> 
    <mount-name>/ogg</mount-name>
    <charset>utf-8</charset>
</mount>
<fileserve>1</fileserve>
<paths>
    <basedir>/usr/share/icecast2</basedir>
    <logdir>/var/log/icecast2</logdir>
    <webroot>/usr/share/icecast2/web</webroot>
    <adminroot>/usr/share/icecast2/admin</adminroot>
    <alias source="/" dest="/status.xsl"/>
    <ssl-certificate>/etc/icecast2/icecast2.pem</ssl-certificate>
</paths>
<logging>
    <accesslog>access.log</accesslog>
    <errorlog>error.log</errorlog>
    <loglevel>4</loglevel>
</logging>
<security>
    <chroot>0</chroot>
    <changeowner>
        <user>icecast2</user>
        <group>icecast</group>
    </changeowner>
</security>
</icecast>

Icecast 证书 (/etc/icecast2/icecast2.pem) 生成者:

openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyouticecast2.pem -outicecast2.pem

我希望从地址获取输出流https://域名:8000/stream https://域名:8000/ogg用于通过标签音频插入播放器,但作为响应 - 静音。因此,带有简单 http 的地址一切正常。 我不明白什么都是同样的错误...... 在此先感谢您的帮助!


我最近遇到了这个问题,没有太多时间来解决它,也没有看到太多这样做的文档。我认为它不是最广泛使用的 Icecast 配置,所以我只是用 nginx 代理我的配置,它工作得很好。

这是一个 nginx 虚拟主机示例。请务必更改域,检查您的路径,并考虑您希望挂载代理的位置以及您希望如何处理端口。

请注意,这将使您的流在端口 443 而不是 8000 上可用。某些客户端(例如 facebookexternalhit/1.1)可能会尝试挂起该流,因为它认为这是一个等待连接的 https URL。这可能不是您期望或希望的行为。

另外,如果您根本不希望 http 可用,请务必将绑定地址更改回本地主机。例如:

 <bind-address>127.0.0.1</bind-address>

www.example.com.nginx.conf

server {
  listen 80;
  server_name www.example.com;
  location /listen {
    if ($ssl_protocol = "") {
      rewrite ^   https://$server_name$request_uri? permanent;
    }
  }
}

#### SSL

server {
  ssl on;
  ssl_certificate_key /etc/sslmate/www.example.com.key;
  ssl_certificate /etc/sslmate/www.example.com.chained.crt;

  # Recommended security settings from https://wiki.mozilla.org/Security/Server_Side_TLS
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:
ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA
-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES2
56-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
  ssl_prefer_server_ciphers on;
  ssl_dhparam /usr/share/sslmate/dhparams/dh2048-group14.pem;
  ssl_session_timeout 5m;
  ssl_session_cache shared:SSL:5m;

  # Enable this if you want HSTS (recommended)
  add_header Strict-Transport-Security max-age=15768000;
  listen 443 ssl;
  server_name www.example.com;

  location / {
    proxy_pass         http://127.0.0.1:8000/;
    proxy_redirect     off;
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
  }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么Icecast2不想通过https给出流? 的相关文章

随机推荐

  • pytorch 摘要因 Huggingface 模型而失败

    我想要一个总结PyTorch从huggingface下载的模型 我在这里做错了什么吗 from torchinfo import summary from transformers import AutoModelForSequenceCl
  • 在 LINQ 中按月和年分组多个日期属性

    我需要按月份和年份对多个属性进行分组C LINQ 这是我的代码 public class Class1 public Nullable
  • 如何在 cabal 测试中使用detailed-0.9

    我在让单元测试在阴谋集团下运行时遇到了令人惊讶的困难 我已经逐字复制了测试代码阴谋集团文档 除了更改模块名称 LANGUAGE FlexibleInstances module Test Integral tests where impor
  • 如何解析sample1的响应以在JMeter中创建新示例

    我使用JMeter来做Web服务器的性能测试 我的测试用例如下 step1 send file update request to server step2 server will return some files URL as html
  • 阻止用户在网站上多次投票

    我计划在我运行的网站上添加一些投票赞成 反对投票按钮 这看起来很简单 但我想阻止人们多次投票 一种解决方案是让他们在投票之前进行注册 但我不希望强迫他们注册 有没有一种相当简单的方法可以做到这一点 检查 IP 地址似乎不是一个好的解决方案
  • 使用 type() 手动创建新类时,子类 __module__ 设置为元类模块

    在下面的示例中 新创建的子类最终成为元类 module 而不是父类的模块 我只在使用时见过这种情况ABCMeta所以这可能是该模块特有的东西 有人知道会发生什么吗 In 1 from abc import ABCMeta In 2 clas
  • termios VMIN VTIME 和阻塞/非阻塞读取操作

    我正在尝试为 Linux 编写一个简单的 C 串行通信程序 我对阻塞 非阻塞读取和 VMIN VTIME 关系感到困惑 我的问题是 我是否应该根据是否有阻塞 非阻塞开放调用来设置 VMIN VTIME 例如 如果我有以下公开征集 open
  • 在 Google App Engine Python SDK 上使用 RSA 私钥对字符串进行签名

    是否有任何已知的方法可以在 Google App Engine Python SDK 上使用 RSA 私钥对纯文本字符串进行签名 gdata python 库中包含的 tlslite 库是一个不错的选择 http code google c
  • 更改 JPanel 及其所有元素的字体大小

    我正在尝试创建一个 Swing 面板 其元素的字体大小与 swing 应用程序的其余部分不同 最初 使用setFont对于几个组件来说没有造成任何问题 现在我有几个组件 及其所有子组件 所以这个解决方案是不切实际的 我搜索过有关更改 swi
  • .net 4.0 代码合同。什么时候使用?他们什么时候浪费时间了?

    我一直在研究 NET 4 0 代码契约 并在 stackoverflow 上查找与此相关的问题 我仍然从未遇到过任何使用代码契约的示例代码 这让我想知道 这真的有用吗 或者也许它是您的代码达到一定复杂性时唯一有用的一个 有人使用代码合约并且
  • 在 Wordpress 中处理序列化数据

    我在 WordPress 自定义字段中有以下序列化数据字符串 first string a 9 s 5 email s 13 email protected s 4 name s 15 Werner Etsebeth s 8 address
  • 无法从Listview的EditText获取值?

    我正在尝试从列表视图中的 EditText 获取数据 我看到了很多类似的问题并得到了solution 但它在我的实现中引发了 NPE 所以请指导我解决这个问题 Adapter public class Coscho adapter exte
  • Visual Studio Code - 可以对 python 进行实时 linting 吗?

    这里有同样的问题 但还没有任何答复 使用 VSCode 对 Python 进行实时 linting 我现在正在使用 VS code 市场上的 Python 扩展 经过大约一个小时的研究 我在 linter 中发现了以下选项 python l
  • 如何在 Eclipse 中将源附加到 Google Drive API 或“Android Private Library”

    我已经安装了驱动API使用Add Google APIs 菜单选项 当手动钻入下面的任何一个罐子时驱动API 源代码打开正常 但手动钻入同一个罐子下Android Private Libraries结果是 未找到源 所以使用时open De
  • 同名的变量和函数在块内返回错误

    如果我们声明一个变量和一个同名的函数 它接受重新声明 但是当我们在一个块内做同样的事情时 它显示重新声明错误 Code var x function x no error 但在这种情况下我收到错误 var inside re declara
  • Nightwatch 无法通过 css id 或类选择器定位元素

    我们使用 Nightwatch 来自动化一些 UI 测试 当前的一些测试相当脆弱 主要与奇怪的 CSS 选择器有关 我正在尝试简化它们 但我希望一些简单的 CSS 选择器能够工作 但事实并非如此 我试图找到这个深度嵌套的 a tag a c
  • Emacs 桌面不记得 TRAMP 连接?

    我使用 emacs 在多个不同的服务器上编辑脚本和代码文件 TRAMP 运行良好 然而 当我退出 emacs 时 我所有的流浪者连接都会消失 我尝试了桌面保存模式 但重新启动 emacs 时仅显示本地文件 是否有一些软件包可以记住流浪者连接
  • 字符串作为 R 中的因子

    在 R 中创建数据框时 字符串默认转换为因子 我不介意 但是 当我想在数据框中创建新行时 我找不到将字符串编码为因子的方法 如果我使用factor 字符串被转换为数字 但仍然不是一个因子 在任何一种情况下 我都无法将新行附加到数据框中 因为
  • jquery菜单悬停

    我有一个菜单 当我将鼠标悬停在 div 上时它会显示 当鼠标移出时它会淡出 问题是 如果您滚动菜单的任何子菜单 菜单就会消失 因为从技术上讲 如果您在其中一个子菜单上 那么您就没有在父菜单上 是否有一种方法可以使滚动子菜单不会消失算作鼠标移
  • 为什么Icecast2不想通过https给出流?

    在具有 Ubuntu 14 04 LTS 的服务器上安装了支持 SSL 的 Icecast2 2 4 1 也在该服务器上运行 HTTPS 网站 我想在页面上插入 HTML5 播放器 该播放器也将通过 SSL 获取流 否则 混合内容错误 该网