您好,欢迎光临系统之家!

系统之家 - 为您打造全网优秀的系统论坛!

 找回密码
 注册
搜索

ubuntu+apache+websocks+tls配置https自签证书过程遇到的坑

查看: 1152|回复: 0

[应用] ubuntu+apache+websocks+tls配置https自签证书过程遇到的坑 [复制链接]

Rank: 64Rank: 64Rank: 64Rank: 64

UID
5
帖子
6562
威望
4312 点
黄金
10544 金币
在线时间
4572 小时
注册时间
2005-5-13
最后登录
2024-10-24

终身成就奖 宣传大使奖

发表于 2019-9-8 17:10:17 |显示全部楼层
CentOS容易的多,一句yum install mod_ssl,该有的就都有了,但ubuntu却会有些坑。
本贴介绍了ubuntu+apache的组合下开启ws和tls以及实现proxy_pass。

首先:一条命令利用OpenSSL即可创建一条自签名密钥与证书:
  1. sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/selfsigned.key -out /etc/ssl/selfsigned.crt
复制代码
注1:
req和-x509: 自签名证书,而非生成普通的证书签名请求。
-nodes: 跳过密码保护证书
-days 3650: 此选项选定证书的有效时限。我们将其设定为10年。
-newkey rsa:2048: 生成一份新证书与新密钥,其中rsa:2048部分指定生成RSA密钥,长度为2048位。
-keyout: 生成的密钥文件保存位置。
-out: 创建的证书保存位置。
注2:
Organization Name是使用人
Organizational Unit Name是使用部门
Common Name是颁发者

配置文件样例:
  1. <VirtualHost *:443>
  2.   ServerName domain.mine
  3.   SSLCertificateFile /etc/ssl/selfsigned.crt
  4.   SSLCertificateKeyFile /etc/ssl/selfsigned.key
  5. ...
  6. </VirtualHost>
复制代码
报错:Invalid command 'SSLCertificateFile'
  1. a2enmod ssl
复制代码
报错:Invalid command 'ProxyPass'
从mods-available复制 proxy* ../mods-enabled
从mods-available复制 xml* ../mods-enabled

报错:Invalid command "Header"
  1. sudo a2enmod headers
复制代码
报错:no RSA or DSA server certificate found
apache配置文件中缺少"SSLEngine on"

service apache2 restart卡住,日志报错:
Failed to lookup provider 'shm' for 'slotmem'
从mods-available复制 slot* ../mods-enabled

tls实现了加密,因为ws数据可以被apache2转发,所以有这么个组合。
这个组合使得在不影响网站使用的同时顺手把其它应用的ws数据转发进来。

最后一个大坑在这:怎么让apache把数据转交给本机的其它ws应用。正确的配置其实应该是酱婶的:
首先开启rewrite,记得apache2.conf中AllowOverride None改成All
  1. sudo a2enmod rewrite
复制代码
然后在apache的443部分配置文件中
  1. RewriteEngine On
  2.         RewriteCond %{HTTP:Upgrade} =websocket [NC]
  3.         RewriteRule /(.*)           ws://127.0.0.1:10000/$1 [P,L]
复制代码
第二种套路是反代:
  1. SSLProxyEngine On
  2.         Proxypass /目录路径 http://127.0.0.1:10000
  3.         ProxyPassReverse /目录路径 http://127.0.0.1:10000
复制代码
注于2019年11月20日:发现如果Apache版本低于2.4,可能无法rewrite强转ws。

中华人民共和国宪法第四十条:
中华人民共和国公民的通信自由和通信秘密受法律的保护。

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

回顶部