首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Icecast2不想通过https提供流?

为什么Icecast2不想通过https提供流?
EN

Stack Overflow用户
提问于 2015-05-14 12:45:07
回答 4查看 16.5K关注 0票数 10

在具有Ubuntu14.04LTS的服务器上,安装了Icecast2 2.4.1,并提供了SSL支持。也在这个服务器上工作HTTPS网站。我希望在HTML5 5播放器页面上插入,它也将通过SSL (否则-混合内容错误)流。该网站有一个商业SSL证书,Icecast -一个自签名.Icecast配置文件:

代码语言:javascript
复制
<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/Icecast 2/icecast2.pem),由:

openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout icecast2.pem -out icecast2.pem

我希望从地址https://domain.name:8000/stream https://domain.name:8000/ogg获得输出流,以便通过标记音频插入播放器,但作为响应-沉默。因此,带有简单http的地址--所有的东西--都能正常工作。我不明白什么是同样的错误。提前感谢您的帮助!

EN

回答 4

Stack Overflow用户

发布于 2015-07-16 23:12:22

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

下面是一个示例nginx vhost。请确保更改域,检查您的路径,并考虑您希望将挂载代理到的位置以及您希望如何处理端口。

请注意,这将使您的流可用在端口443,而不是8000。某些客户端(如facebookexternalhit/1.1)可能会试图保存流,因为它被认为是等待连接的https url。这可能不是您所期望或希望的行为。

此外,如果您希望根本没有可用的http,请确保将绑定地址更改回本地主机。例:

代码语言:javascript
复制
 <bind-address>127.0.0.1</bind-address>

www.example.com.nginx.conf

代码语言:javascript
复制
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;
  }

}
票数 8
EN

Stack Overflow用户

发布于 2020-09-08 20:47:49

为Debian版本提供的icecast2包不提供SSL支持(因此它没有https://支持),因为它得到了openssl库的支持,这些库在GPL中存在许可问题。

要了解icecast2是否具有openssl支持,请运行以下命令:

代码语言:javascript
复制
ldd /usr/bin/icecast2 | grep ssl

如果它是用它编译的,那么应该显示如下一行:

代码语言:javascript
复制
libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007ff5248a4000)

如果你什么也没看到,你就没有任何支持。

要获得正确的版本,您可能需要直接从xiph.org获得它:

储存库)

票数 3
EN

Stack Overflow用户

发布于 2021-02-24 03:39:53

伙计们,问题与证书文件有关。首先,你需要比如说

代码语言:javascript
复制
<paths>
     <ssl-certificate>/usr/share/icecast2/icecast.pem</ssl-certificate>
</paths>

代码语言:javascript
复制
<listen-socket>
     <port>8443</port>
     <ssl>1</ssl>
</listen-socket>

在你的配置中。但这不是你所需要的一切!

例如,如果您从“让我们加密”或“sslforfree”获得证书,那么您将拥有一个证书文件和一个私钥文件。但是对于Icecast来说,你需要两个文件在一起。您应该做的是: 1-打开私钥并复制此文件的内容2-打开证书文件并粘贴您复制的私钥的内容,在该文件的末尾将其保存为icecast.pem。

然后使用这个文件,你应该会没事的。

感谢在这里介绍它的人:Icecast 2和SSL

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30237748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档