您的位置:首页 > 理论基础 > 计算机网络

如何让boa网页服务器支持HTTPS

2017-06-25 09:03 756 查看

背景

boa是一个常用于嵌入式的web server,本身是无法支持https的连接的。

这里就是要解决这个问题。

思路

这里并没有采用修改boa的思路,而是增加其他部件来间接实现。

这里,选择了反向代理pound或ssl包装器stunnel。

客户发送的web请求,先到pound/stunnel监听的端口那,pound/stunnel将SSL连接转换为普通的HTTP,再送给boa服务器。

这样,通过简单的增加一层的方式,来漂亮的解决这个问题!

实现

可以采用ssl包装器 stunnel或反向代理pound来实现,stunnel会比pound更简单。

应用stunnel

交叉编译

下载stunne源码,例如我下载的是stunnel-5.38

交叉编译

./configure --host=arm-none-linux-gnueabi


stunnel比pound好的一个地方就是可以支持openssl0.9.8,这样,单板无需额外拷贝新版本的openssl库

[/i] stunnel

编写配置文件

[web_https]
accept = 8080
connect = 127.0.0.1:80
cert = stunnel.pem


[/i] stunnel.conf

pem文件

上面配置文件中出现的pem文件,是一个将private key和certificate合并的文件,具体知识可以google。

制作方法如下:

openssl genrsa -out key.pem 2048
openssl req -new -x509 -key key.pem -out cert.pem -days 1095
cat key.pem cert.pem >> stunnel.pem


这个是我做出来的pem文件。

[/i] stunnel.pem

运行

上面产生了全部的三个文件:

stunnel (执行程序)

stunnel.conf (配置文件)

stunnel.pem (认证文件)

假设都放在一个目录下

./stunnel stunnel.conf

即可运行

应用pound

下载pound源码,例如我下载的是Pound-2.7

交叉编译

./configure --host=arm-linux-gnueabi --with-ssl=/usr/arm-linux-gnueabi/openssl


注意:如果需要静态链接, 上面加上LDFLAGS=”-static” 即可

下面是一个使用静态链接做出来的pound(免得库不一致带来的问题)。

[/i] pound

编写配置文件

假设命名配置文件为pound.cfg

下面的配置的意思是,所有到单板8080端口的https都会变成http发送到本地的80端口

ListenHTTPS
Address 0.0.0.0
Port    8080
Cert    "pound.pem"

Service
BackEnd
Address 127.0.0.1
Port    80
End
End
End


[/i] pound.cfg

pem文件

同stunnel.pem,重命名即可

[/i] pound.pem

运行

上面产生了全部的三个文件:

pound (执行程序)

pound.cfg (配置文件)

pound.pem (认证文件)

假设都放在一个目录下

./pound -f pound.cfg &

即可运行

限制

以上功能,需要在内核>=2.6.28,才能使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息