tedaz
发表于 2024-12-25 14:57
kn69968 发表于 2024-12-25 14:48
我给你看看我的
这个意思是说,外网客户端需要先连接ss,然后再访问 https://域名 吗?
kn69968
发表于 2024-12-25 15:01
tedaz 发表于 2024-12-25 14:57
这个意思是说,外网客户端需要先连接ss,然后再访问 https://域名 吗?
是的,内网的443端口全中国家宽都只能内网访问,公网访问要代理一下。
或者这样也行使用非默认的https端口 https://xxx.domain.me:54321/
jimmy203308
发表于 2024-12-25 15:13
tedaz 发表于 2024-12-25 14:57
我最终要实现的效果是:
外网访问https://ted.ddns.net:12345,可以在证书授信的情况下,转发到内网的192 ...
ddns和ssl证书是两回事,ssl证书是通过dns解析特定代码证明这个地址是你的之后给你的证书,证书放在需要用ssl服务的应用上对外服务,ddns是告诉访问者这个网站名字的ip地址是那个,可以定位到你的服务器,这样网站名字-ip地址-ssl证书,证书上有网站名字,就对上了
jimmy203308
发表于 2024-12-25 15:18
tedaz 发表于 2024-12-25 14:57
这个意思是说,外网客户端需要先连接ss,然后再访问 https://域名 吗?
外网加端口号,就不需要先连ss;先连ss了就等于在内网了,就可以不加端口号了
tedaz
发表于 2024-12-25 15:48
kn69968 发表于 2024-12-25 15:01
是的,内网的443端口全中国家宽都只能内网访问,公网访问要代理一下。
或者这样也行使用非默认的https端 ...
终于搞定了lets encrypt证书。原来是我用的ddns不支持TXT记录,所以无法完成challenges dns验证。
现在证书有了,Nginx的配置文件怎样添加server,才能实现这种效果:https://ted.ddns.net/owncloud,nginx转发到内网的https://192.168.1.24上?
tedaz
发表于 2024-12-25 15:50
jimmy203308 发表于 2024-12-25 15:13
ddns和ssl证书是两回事,ssl证书是通过dns解析特定代码证明这个地址是你的之后给你的证书,证书放在需要 ...
前面之所以问这个问题,是因为一直没搞定lets enceryt的证书。现在终于明白了,申请证书要么用443访问服务器的url完成验证;要么在ddns上添加一个TXT记录完成验证,也就是所谓的challenges dns验证方式。
我之前用的ddns不支持TXT记录,所以验证失败。
换了一个支持TXT的ddns,证书生成成功了。
现在的问题是,Nginx的配置文件怎样添加server,才能实现这种效果:https://ted.ddns.net/owncloud,nginx转发到内网的https://192.168.1.24上?
jimmy203308
发表于 2024-12-25 16:21
本帖最后由 jimmy203308 于 2024-12-25 16:25 编辑
tedaz 发表于 2024-12-25 15:50
前面之所以问这个问题,是因为一直没搞定lets enceryt的证书。现在终于明白了,申请证书要么用443访问服 ...
这个地址指向家宽的话不行的,要另外设端口,假如设54321,就在路由设置端口映射,wan的54321对内网NPM的4443(NPM默认ssl监听端口),然后NPM新增一条记录,例如owncloud.ted.ddns.net,指向192.168.1.24:80,ssl证书选你生成的那个就可以了。外网访问地址就是https://owncloud.ted.ddns.net:54321 我一般是加前缀地址,不加/后面地址,容易出错
下面是NPM映射自己的一个例子
谎言之神Cyric
发表于 2024-12-25 16:41
[困惑]
什么都关上,然后用UU远程来实现串流和远程桌面
kn69968
发表于 2024-12-25 16:49
tedaz 发表于 2024-12-25 15:48
终于搞定了lets encrypt证书。原来是我用的ddns不支持TXT记录,所以无法完成challenges dns验证。
现在 ...
建议 用 nginx-proxy-manager 通过 web ui 点点点配置,不用手工像写代码一样写配置,你手工写还得简单学习一下它的原理和语法,有些小错误都运行不了(例如多打漏打一个字母, 打错一个单词,或者漏打 分号 ';' )
教程就是像我的教程一样
tedaz
发表于 2024-12-25 16:55
kn69968 发表于 2024-12-25 16:49
建议 用 nginx-proxy-manager 通过 web ui 点点点配置,不用手工像写代码一样写配置,你手工写还得简单学 ...
谢谢回复。
经过一顿折腾,现在终于可以实现外网访问https:ted.ddns.net:8888,可以重定向到内网的owncloud了,且证书有效,显示lets encrypt的证书。
但是,现在是owncloud一直提示:
You are accessing the server through an untrusted domain.
Please contact your administrator. If you are an administrator of this instance, configure the "trusted_domains" setting in config/config.php. An example configuration is provided in config/config.sample.php or at the documentation.
已经在配置文件中添加了ted.ddns.net:8888,和nginx的地址192.168.1.2:443
owncloud还需要添加什么域名呢?
tedaz
发表于 2024-12-25 16:58
jimmy203308 发表于 2024-12-25 16:21
这个地址指向家宽的话不行的,要另外设端口,假如设54321,就在路由设置端口映射,wan的54321对内网NPM的 ...
请看40楼:现在可以从外网访问了,但是owncloud一直提示添加tursted domains。
浏览器已经显示lets encrypt证书了,错误也是在owncloud的页面显示的。
elvba
发表于 2024-12-25 16:59
tedaz 发表于 2024-12-25 16:55
谢谢回复。
经过一顿折腾,现在终于可以实现外网访问https:ted.ddns.net:8888,可以重定向到内网的ownclo ...
这个是 owncloud 的问题,按照提示,你要去 config/config.php 里配置 trusted_domains
tedaz
发表于 2024-12-25 17:23
elvba 发表于 2024-12-25 16:59
这个是 owncloud 的问题,按照提示,你要去 config/config.php 里配置 trusted_domains ...
trusted_domains中已经添加了下述域名,但是依然报错
ted.ddns.net
ted.ddns.net:8888
192.168.1.2(nginx)
192.168.1.2:443
192.168.1.24(owncloud)
192.168.1.24:443
还需要添加什么,或者应该怎么添加?
elvba
发表于 2024-12-25 17:45
tedaz 发表于 2024-12-25 17:23
trusted_domains中已经添加了下述域名,但是依然报错
ted.ddns.net
把修改之后的文件内容发上来看看
kn69968
发表于 2024-12-25 19:10
本帖最后由 kn69968 于 2024-12-25 19:12 编辑
tedaz 发表于 2024-12-25 16:58
请看40楼:现在可以从外网访问了,但是owncloud一直提示添加tursted domains。
浏览器已经显示lets encry ...
我觉得可能是 因为配置格式有误:
1. 你找找 owncloud 的配置样例。
2. 你试试 改成 https://domain.com:8888 或者 https://domain.com ( 因为当我配置 其他一些容器的时候要求填写的 trusted domain 就是 https://my.domain.me 这样。
如果是 容器的话一般会在环境变量里面设置好。
kn69968
发表于 2024-12-25 19:15
tedaz 发表于 2024-12-25 17:23
trusted_domains中已经添加了下述域名,但是依然报错
ted.ddns.net
例如 一个 vaultwarden 容器(密码本)的配置是这样的
其中一行是
DOMAIN: "https://your.domain"# 您的域名;Vaultwarden 需要知道它是 https 才能正确处理附件
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
DOMAIN: "https://your.domain"# 您的域名;Vaultwarden 需要知道它是 https 才能正确处理附件
volumes:
- ./vw-data:/data
tedaz
发表于 2024-12-25 20:06
本帖最后由 tedaz 于 2024-12-25 20:12 编辑
elvba 发表于 2024-12-25 17:45
把修改之后的文件内容发上来看看
主路由ip=192.168.1.1
nginxip=192.168.1.2
owncloud ip=192.168.1.24
问题:公网访问https://ted.ddns.net:8888,证书显示是lets encrypt的,也会显示owncloud的页面,但是会提是需要添加trust domains。
公网ip的8888端口映射到192.168.1.2(nginx)的443端口。
nginx的配置文件
server {
listen 443 ssl;
server_name ted.ddns.net:8888;
ssl_certificate fullchain.pem;
ssl_certificate_key privkey.pem;
# ssl_protocols TLSv1.3 TLSv1.2;
# Other SSL configuration options (e.g., preferred ciphers, protocols, etc.)
location / {
proxy_pass https://192.168.1.24; # 指向内网地址
proxy_ssl_verify off; # 如果目标内网 HTTPS 无证书或为自签证书,可以关闭验证
proxy_set_header Host $host; # 传递请求的 Host
proxy_set_header X-Real-IP $remote_addr; # 传递真实客户端 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 转发链路信息
proxy_set_header X-Forwarded-Proto $scheme; # 转发请求协议(HTTP 或 HTTPS)
}
}
owncloud的配置文件
'trusted_domains' =>
array (
6 => 'ted.ddns.net:8888',
owncloud的配置文件中如果再添加一行
7 => 'ted.ddns.net',会出现神奇的效果,此时不再显示lets encrypt证书,而是显示成主路由openwrt的不受信证书了,浏览器点击忽略风险,会变成错误信息
Forbidden
Rejected request from RFC1918 IP to public server address
tedaz
发表于 2024-12-25 20:07
kn69968 发表于 2024-12-25 19:15
例如 一个 vaultwarden 容器(密码本)的配置是这样的
其中一行是
请看一下47楼的配置文件,接下来应该怎么改?
kn69968
发表于 2024-12-25 20:17
本帖最后由 kn69968 于 2024-12-25 20:19 编辑
tedaz 发表于 2024-12-25 20:07
请看一下47楼的配置文件,接下来应该怎么改?
'trusted_domains' =>
array (
6 => 'ted.ddns.net:8888',
这里你改成
https://ted.ddns.net, 应该是这个,因为你配置了 proxypass https://ip:port, 所以owncloud收到的http请求是 https://ted.ddns.net
如果不行就尝试
https://ted.ddns.net:8888
反正有无http(s) 和 域名 和有无端口(8888,443)
一共多个组合试
LightFocus
发表于 2024-12-25 20:37
直接用cloudflared养老了[困惑]
elvba
发表于 2024-12-25 20:43
本帖最后由 elvba 于 2024-12-25 20:52 编辑
tedaz 发表于 2024-12-25 20:06
主路由ip=192.168.1.1
nginxip=192.168.1.2
owncloud ip=192.168.1.24
nginx 的配置 listen 和 server_name 部分改成下面这样试试,server_name 带端口号肯定是不对的。
server {
listen 443 ssl;
listen 8888 ssl;
server_name ted.ddns.net;
elvba
发表于 2024-12-25 20:52
tedaz 发表于 2024-12-25 20:06
主路由ip=192.168.1.1
nginxip=192.168.1.2
owncloud ip=192.168.1.24
另外,根据 owncloud 的文档,https://doc.owncloud.com/server/next/admin_manual/configuration/server/config_sample_php_parameters.html#define-list-of-trusted-domains-that-users-can-log-into
这里域名配置应该是
'trusted_domains' => [
'ted.ddns.net',
],
也就是只写域名即可,不用带协议,不用带端口
tedaz
发表于 2024-12-25 20:53
kn69968 发表于 2024-12-25 20:17
这里你改成
https://ted.ddns.net, 应该是这个,因为你配置了 proxypass https://ip:port, 所以ownclou ...
这些组合都试了,不行,有的提示需要添加trust domains,有的直接提示错误,无法访问,有的会浏览器地址栏错误的跳到owncloud/apps/等文件夹但是显示无法访问。
还是要弄明白正确的应该怎么写才行。
tedaz
发表于 2024-12-25 20:57
elvba 发表于 2024-12-25 20:43
nginx 的配置 listen 和 server_name 部分改成下面这样试试,server_name 带端口号肯定是不对的。
...
试了,还是不行。
这样改了nginx的配置后,效果是这样的:
(a)owncloud中添加ted.ddns.net,则会“This site can’t be reached”,此时地址栏显示“https://ted.ddns.net/index.php/apps/files/”
(b)owncloud中添加ted.ddns.net:8888,则会提示需要trust domains。
tedaz
发表于 2024-12-25 20:59
本帖最后由 tedaz 于 2024-12-25 21:31 编辑
elvba 发表于 2024-12-25 20:52
另外,根据 owncloud 的文档,https://doc.owncloud.com/server/next/admin_manual/configuration/server ...
owncloud中只写域名,错误是“This site can’t be reached ted.ddns.net refused to connect.”
实测,owncloud配置是支持端口的。
我用普通的端口转发测试,如果配置文件只写域名,不写端口,确实什么端口都可以访问。
但是如果我添加错误的端口,比如9999,则会提示需要添加trust domains。
并且,用nginx,如果不写端口会提示访问不可达。owncloud配置如果写了端口,则会提示需要添加trust domains。
tedaz
发表于 2024-12-25 22:02
kn69968 发表于 2024-12-25 19:15
例如 一个 vaultwarden 容器(密码本)的配置是这样的
其中一行是
现在折腾到这个效果了:
浏览器访问
https://ted.ddns.net:8888
会自动跳转到
https://ted.ddns.net/index.php/apps/files/
此时如果手动修改下url=https://ted.ddns.net:8888/index.php/apps/files/,
也就是手动添加端口号,
则可以正常访问owncloud并且证书也是正确的。
Nginx中需要怎么写,才能让自动跳转时,添加端口号?
elvba
发表于 2024-12-25 22:17
tedaz 发表于 2024-12-25 22:02
现在折腾到这个效果了:
浏览器访问
到这一步我觉得是 owncloud 的配置问题,是 owncloud 跳转到了 https://ted.ddns.net/index.php/apps/files/ 而不是 nginx。
你看看 owncloud 里有没有地方配置域名和端口的地方。
kn69968
发表于 2024-12-25 22:20
tedaz 发表于 2024-12-25 22:02
现在折腾到这个效果了:
浏览器访问
nginx 加个 location 路径, 这些我也没配置过,但是我感觉应该可以配置的.
你可以问问 chat鸡皮提, 再不行, 在淘宝花几十块钱 买个技术咨询, 学习一下 nginx 的配置.
tedaz
发表于 2024-12-25 22:36
elvba 发表于 2024-12-25 22:17
到这一步我觉得是 owncloud 的配置问题,是 owncloud 跳转到了 https://ted.ddns.net/index.php/apps/fil ...
是owncloud的问题,也不是owncloud的问题:
在owncloud中添加overwritehost,确实可以访问了,域名端口号证书都正确,但是这会导致局域网ip访问,其他域名访问也都被overwrite了。
我希望仅一个域名(ted.ddns.net)被nginx重定向并添加端口;其他域名和本地ip地址不要被overwrite。
tedaz
发表于 2024-12-25 22:38
kn69968 发表于 2024-12-25 22:20
nginx 加个 location 路径, 这些我也没配置过,但是我感觉应该可以配置的.
你可以问问 chat鸡皮提, 再不 ...
经过跟鸡皮提沟通,达到了59楼的效果。
但是这种在owncloud中直接暴力overwritehost会导致只能使用一个域名访问owncloud,连内网ip都无法访问了。
感觉问题还是出在Nginx上,应该有某种重定向写法可以在跳转后,带上端口号,而不是通过owncloud暴力overwrite。