【问题标题】:Siege https error: HTTPS requires libssl围攻 https 错误:HTTPS 需要 libssl
【发布时间】:2017-07-11 02:13:18
【问题描述】:

我无法让 siege 使用 https。在预装 OpenSSL 1.0.2g 和 libssl-dev 1.0.2g-1ubuntu4.6 的 Ubuntu 16.04 LTS 上运行 Siege 4.0.2。

错误
当我运行它时,我收到很多这样的错误:
[error] HTTPS requires libssl: Unable to reach www.mysite.com with this protocol: Transport endpoint is already connected

还有几个
[error] descriptor table full sock.c:133: Too many open files

那么最后
libgcc_s.so.1 must be installed for pthread_cancel to work
[1] 18421 abort (core dumped) sudo siege -t 5M -d1 -c200 -f urls-f1.txt

我的研究
我在网上找到了一些关于让 siege 使用 https 的答案。例如,this thread on stackoverflow 表示“使用 --with-ssl 选项进行配置。此外,还必须安装 openssl 开发头文件”。

也许最好的来源是 the siege package 本身的 INSTALL 文件,它说:
要启用 https,您必须在系统上安装 ssl。获取 来自http://www.openssl.org 的最新版本。安装 ssl 后, 那么你必须配置 siege 才能使用它:

$ ./configure --prefix=/some/dir --with-ssl=/ssl/install/dir

openssl 默认安装是 /usr/local/ssl。如果你安装了 openssl 在该目录中,然后您将像这样配置围攻:

$ ./configure --prefix=/some/dir --with-ssl=/usr/local/ssl
$ make
$ make uninstall (if you have a previous version already installed)
$ make install

我尝试了所有这些建议,并找到了更多相同的建议。但我仍然坚持上面显示的错误。也许我错过了什么,或者最新的软件或操作系统有问题。下一部分展示了我为设置机器所做的工作。

我如何设置机器
我在 DigitalOcean 上使用预装了 Ubuntu 16.04.1 的新 VPS。在设置了额外的用户、SSH 访问和防火墙之后,这就是我设置 siege 所做的。

  1. 更新系统
    sudo apt-get update && sudo apt-get upgrade --show-upgraded

  2. 安装 GNU 编译器集合
    sudo apt-get install build-essential

  3. 安装 openssl 开发头包
    sudo apt-get install libssl-dev

  4. 下载围攻解压
    wget http://download.joedog.org/siege/siege-latest.tar.gz
    tar -zxvf siege-latest.tar.gz

  5. 配置和安装siege
    cd siege-*/
    查找 openssl 所在的位置:
    which openssl 将此信息用于 with-ssl 标志
    ./configure --with-ssl=/usr/bin/openssl
    make
    sudo make install

我的问题
请帮助我使用 https URL 进行围攻。在回答这个问题时,请知道我对 Linux 管理员的东西还很陌生,因此非常感谢您详细说明该做什么。

【问题讨论】:

  • 你搞定了吗?遇到类似问题,并按照他们的 wiki 进行设置:S wiki.mikejung.biz/Siege
  • @kafka:是的,我确实让它工作了,请参阅下面的答案
  • 谢谢,我确实尝试过,但无济于事。原来我们可以使用 HTTP url,所以就这样吧!

标签: linux ubuntu https openssl siege


【解决方案1】:

原来需要--prefix 来链接我系统中的库。即使如果您不提供该信息,安装似乎工作正常且没有错误。在提供前缀之前,我将前缀设置为 siege 安装到的目录。所以安装最终在同一个目录中,但现在它可以使用 https。

这对我有用:

$ ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
$ make
$ sudo make install

【讨论】:

    【解决方案2】:

    在“make install”之前执行“make clean”以删除不支持 ssl 编译的对象:

    1. cd 围攻-*/
    2. sudo make clean
    3. sudo make install

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 2012-05-12
      • 2018-09-26
      • 2021-05-02
      • 2022-08-20
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 2014-11-05
      相关资源
      最近更新 更多