mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-11 17:46:29 -05:00
500 Internal error when migrating from another self-signed HTTPS Gitea server #8008
Closed
opened 2025-11-02 07:48:18 -06:00 by GiteaMirror
·
5 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No Label
issue/not-a-bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#8008
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @hyjwei on GitHub (Oct 22, 2021).
Gitea Version
1.15.4
Git Version
2.33.1
Operating System
Linux amd64
How are you running Gitea?
Prebuild amd64 binary from https://dl.gitea.io/gitea/1.15.4/gitea-1.15.4-linux-amd64
Database
SQLite
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Description
I have setup Gitea ServerA with HTTP (localhost only, on port 3000) and use Nginx reverse proxy to provide both HTTP and HTTPS (on port 80 and 443) to other clients. The HTTPS certificate in Nginx is a self-signed one and I have set "http.sslVerify = false" in client git config to skip the certificate error and access the repo on ServerA. In ServerA app.ini, the ROOT_URL is https://serverA/.
And now I am trying to setup another Gitea ServerB to mirror/backup some repos from ServerA. ServerB is HTTP only (on port 3000) and I am add new migration repo mirrored from ServerA.
Scenario 1: ServerA HTTP/HTTPS both accessible; ServerB git user doesn't have http.sslVerify = false
a) Migrating from HTTPS fail, with error:
Migrating from https://serverA/user/repo.git failed.However, the migration repo in ServerB is created. It is empty and accessing it results in 500 Internal Server Error.
b) Migrating from HTTP fail, with error:
Migrating from http://serverA/user/repo.git failed.No migration repo created in ServerB.Scenario 2: ServerA HTTP/HTTPS both accessible; ServerB git user has http.sslVerify = false
a) Same as S1.a.
Migrating from HTTPS fail, with error:
Migrating from https://serverA/user/repo.git failed.However, the migration repo in ServerB is created. It is empty and accessing it results in 500 Internal Server Error.
b) Migrating from HTTP succeed, clone URL is actually
https://serverA/user/repo.gitScenario 3: ServerA HTTP forcefully redirected to HTTPS; regardless of ServerB git user's http.sslVerify setting
a) Same as S1.a.
Migrating from HTTPS fail, with error:
Migrating from https://serverA/user/repo.git failed.However, the migration repo in ServerB is created. It is empty and accessing it results in 500 Internal Server Error.
b) Similar to S1.a.
Migrating from HTTP fail, with error:
Migrating from http://serverA/user/repo.git failed.However, the migration repo in ServerB is created. It is empty and accessing it results in 500 Internal Server Error.
My guess is that Gitea and git has separated function to access HTTPS repo. Setting git config http.sslVerify only bypass the SSL check in git HTTPS function but there is no way to bypass Gitea's.
git cloneusing https:// and therefore git config http.sslVerify would make it work.My suggestion is to add a service configuration in app.ini to allow Gitea to ignore HTTPS certificate error, something like git config sslVerify=false does.
I searched for potential solution and got this Go example :
I understand that this option is insecure and dangerous but it would be nice to have it configurable in app.ini. Thanks!
Screenshots
No response
@wxiaoguang commented on GitHub (Oct 22, 2021):
You can add your self-signed CA certificate to you system root CA, then the self-signed CA certificate can be trusted.
ps: I do not think this is a
kind/bug, lol@lunny commented on GitHub (Oct 22, 2021):
OK. I just found github doesn't follow
setting.Migrations.SkipTLSVerifyand for Gitea itself ( this issue), you should set@lunny commented on GitHub (Oct 22, 2021):
Just found, SkipTLSVerify will be introduced in v1.16, so it's a feature which has been implemented in v1.16. I think we can close this now.
@hyjwei commented on GitHub (Oct 22, 2021):
Thanks @lunny . I was wondering why SKIP_TLS_VERIFY = true doesn't work when I try it.
One more thing. I believe that at least 500 Internal Server Error should be avoided. So if Gitea gets certificate error, it should either give up, or as I suggested, to ignore the error (with SKIP_TLS_VERIFY) and go ahead to migrate the repo. It shouldn't leave a half-migrated empty git repo in such case.
@lunny commented on GitHub (Oct 22, 2021):
Yeah, it should return an error message but not just a 500.