围攻https错误:HTTPS需要libssl

时间:2017-02-21 12:39:23

标签: linux ubuntu https openssl siege

我无法让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

我的研究
我在网上找到了几个答案,可以让围攻与https一起工作。例如,this thread on stackoverflow表示“使用--with-ssl选项进行配置。此外,必须安装openssl开发标题”。

也许最好的来源是the siege package本身的INSTALL文件,其中包含:
要启用https,您必须在系统上安装ssl。得到 来自http://www.openssl.org的最新版本。安装ssl之后, 然后你必须配置围攻来使用它:

$ ./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上使用了一个新的VPS,预装了Ubuntu 16.04.1。在设置了额外的用户,SSH访问和防火墙之后,这就是我设置围攻的方法。

  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. 配置并安装围攻
    cd siege-*/
    找到openssl所在的位置:
    which openssl 将此信息用于with-ssl标志
    ./configure --with-ssl=/usr/bin/openssl
    make
    sudo make install

  6. 我的问题
    请帮助我解决使用https网址的问题。在回答这个问题时,请知道我对Linux管理员的新手很陌生,所以非常感谢有关该做什么的详细信息。

2 个答案:

答案 0 :(得分:7)

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

这对我有用:

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

答案 1 :(得分:4)

做一个'干净'之前' make install'删除没有ssl支持编译的对象:

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