trojan icon indicating copy to clipboard operation
trojan copied to clipboard

有无自签名证书使用成功的例子?

Open yufeiluo opened this issue 2 years ago • 7 comments

我发现使用自签名,必须将verify设置成false ,如果verify是true,很多材料说:

客户端config.json:

"ssl": {
        "verify": true,
        "verify_hostname": true,
        "cert": "./server.crt",

服务端config.json:
"log_level": 1,
    "ssl": {
        "cert": "/usr/local/etc/trojan/server.crt",
        "key":  "/usr/local/etc/trojan/server.key",

其中server.crt为 同一个文件。

我测试了,根本行不通。

yufeiluo avatar Apr 16 '22 05:04 yufeiluo

自签名的话,应该需要在客户端导入CA证书,如果客户端CA证书不受信任应该无法连接;虽然我没有试过Tro自签名,我在使用内网穿透自签名发现的,在Tro上应该同样实用,你可以试试。

dbugcn avatar Apr 24 '22 17:04 dbugcn

首先得讓你自己需要訪問Trojan的設備,安裝CA證書。

"verify":false 只是讓客戶端不檢查所連接服務器的證書是否有效而已。

yatounoneko avatar May 11 '22 07:05 yatounoneko

我以前用v2ray,今天换了个口味玩trojan,服务端用的就是openssl的自签名证书,而且没绑域名,纯ip,居然成功了。我一直都对tls心里有点恐惧,没想到整个过程令人难以置信的简单,半个多小时就完成了,好高兴啊

整个过程,我只通过openssl在服务端安装了自签证书,并在config指定了key和cert的路径;至于客户端,是windows版本的,不需要导入或指定任何证书,只是把"verify_hostname"设置了false,"verify"也设置成了false——当然这两个有没有必要设置,我也不知道。

我是参考( https://stackoverflow.com/questions/51340872/can-i-certify-website-without-domain-name )来给服务器自签证书的,真的特别简单。

所以我觉得,如果连接不上,估计不会是证书的问题,可能是你两边的ip、端口没设置对,或服务器/客户端的trojan程序没启动,抑或是你端口转发没设置对,再或者是你服务端被墙了。注意看客户端的错误信息来排除bug。

breylinlee avatar Jun 05 '22 19:06 breylinlee

我之前在换host_name_verification之前有一阵能用过自签的证书 因为有一次升级trojan的时候发现了这个问题,两台机器上的一个用不了,查了一下源码发现了 https://github.com/trojan-gfw/trojan/blob/3e7bb9aecdc694f9bcae8d646fae395f773d60f8/src/core/service.cpp#L209 如果你可以做到的话可以试试直接改源码之后编译 这个操作简单点 不确定是不是会有安全隐患

或者 你可以自己先造个CA证书,然后用这个CA证书签发一个用于加密的证书给trojan用 CA证书应该是要装到客户端上的 而且给只ip上的ssl证书应该是要把sni设置成对应ip的如果没记错的话

commandblock2 avatar Aug 01 '22 05:08 commandblock2

ca证书导入到客户端所在系统全局信任就可以,我直接导的根证书没问题

JoJenH avatar Feb 02 '23 02:02 JoJenH

我以前用v2ray,今天换了个口味玩trojan,服务端用的就是openssl的自签名证书,而且没绑域名,纯ip,居然成功了。我一直都对tls心里有点恐惧,没想到整个过程令人难以置信的简单,半个多小时就完成了,好高兴啊

整个过程,我只通过openssl在服务端安装了自签证书,并在config指定了key和cert的路径;至于客户端,是windows版本的,不需要导入或指定任何证书,只是把"verify_hostname"设置了false,"verify"也设置成了false——当然这两个有没有必要设置,我也不知道。

我是参考( https://stackoverflow.com/questions/51340872/can-i-certify-website-without-domain-name )来给服务器自签证书的,真的特别简单。

所以我觉得,如果连接不上,估计不会是证书的问题,可能是你两边的ip、端口没设置对,或服务器/客户端的trojan程序没启动,抑或是你端口转发没设置对,再或者是你服务端被墙了。注意看客户端的错误信息来排除bug。

这样有加密链接吗,我使用自签名证书,但是客户端没有导入证书也可以进行连接,不知道为什么了

AbianTang avatar Mar 30 '23 10:03 AbianTang

我以前用v2ray,今天换了个口味玩trojan,服务端用的就是openssl的自签名证书,而且没绑域名,纯ip,居然成功了。我一直都对tls心里有点恐惧,没想到整个过程令人难以置信的简单,半个多小时就完成了,好高兴啊 整个过程,我只通过openssl在服务端安装了自签证书,并在config指定了key和cert的路径;至于客户端,是windows版本的,不需要导入或指定任何证书,只是把"verify_hostname"设置了false,"verify"也设置成了false——当然这两个有没有必要设置,我也不知道。 我是参考( https://stackoverflow.com/questions/51340872/can-i-certify-website-without-domain-name )来给服务器自签证书的,真的特别简单。 所以我觉得,如果连接不上,估计不会是证书的问题,可能是你两边的ip、端口没设置对,或服务器/客户端的trojan程序没启动,抑或是你端口转发没设置对,再或者是你服务端被墙了。注意看客户端的错误信息来排除bug。

这样有加密链接吗,我使用自签名证书,但是客户端没有导入证书也可以进行连接,不知道为什么了 @AbianTang 求助, 我用自签名的证书服务端直接无法启动, 提示 [FATAL] 2023/07/08 23:24:42 github.com/p4gefau1t/trojan-go/proxy.(*Node).BuildNext:stack.go:29 tls failed to load key pair 秘钥权限试过改成755 依然报错 。

fstonezst avatar Jul 09 '23 03:07 fstonezst