Linux使用Stunnel加密通道(SSL)

我们使用的是ubuntu系统

检查OpenSSL是否安装

首先先检查服务器有没有安装OpenSSL,Stunnel是基于OpenSSL的。输入以下代码检查,一般服务器都自带

openssl version -a

如果没有的话输入安装命令安装一下

sudo apt-get install openssl
sudo apt-get install libssl-dev

安装Stunnel

sudo apt-get install stunnel

stunnel在ubuntu上的配置文件是要放在/etc/stunnel/目录下的,用vim打开这个目录下的/etc/stunnel/README文件(vim /etc/stunnel/README ),就可以看到给的示例文件是在下边的路径上,实例文件可以参考使用

/usr/share/doc/stunnel4/examples/stunnel.conf-sample

生成pem证书

Tips:自签名证书不安全,可以使用安全的证书代替这一步骤直接上传到服务器对应目录。

openssl req -new -x509 -days 3650 -nodes -out stunnel.pem -keyout stunnel.pem

-new创建一个新的证书-x509创建一个 X509 证书(自己签名的)-days 3650使这个证书的有效期是10年,之后它将不能再用-nodes这个证书没有密码-out stunnel.pem把 SSL 证书写到哪里-keyout stunnel.pem把 SSL 证书放到这个文件中

执行之后会让填写一些证书信息,按照提示填写即可。
之后我们生成的pem证书移动到对应目录

mv stunnel.pem /etc/stunnel/

配置stunnel.conf

打开/新建配置文件

vim /etc/stunnel/stunnel.conf

编辑配置

;用户
setuid=root
setgid=root

;运行时创建该文件,里面有stunnel的pid号
pid=/var/run/stunnel.pid

;应用服务名称,可以自己随便定义,可创建多个
[stunnel]
;no服务端模式,yes客户端模式
client = no
;监听的端口
accept = 12345
;要连接的地址(IP地址:端口或端口)
connect = 1234

;证书文件
cert=/etc/stunnel/stunnel.pem
;无需key的话就不用填写,需要的话就填写。
;key=/etc/stunnel/stunnel.key

启动Stunnel

stunnel

执行后没有任何输错,表示执行成功

查看状态以及停止状态

查看运行状态

sudo netstat -anp |grep 端口

停止服务

sudo kill 4204

 

 

此外,若云服务器重启,Stunnel也需要重新启动,执行启动命令即可

 

 

测试证书

Openssl提供了简单的client和server工具,可以用来模拟SSL连接,做测试使用。

openssl s_client -connect 地址:端口

查看证书信息

openssl x509 -noout -text -in 证书

PEM转换成CER文件,就可以在Windows下直接查看了(可以使用lrzsz库sz命令下载)

openssl x509 -outform der -in pem证书 -out cer证书

 

THE END