Eu tinha uma configuração de trabalho do Apache, Redmine (3.3.2.stable), bem como Subversion (1.6.17); o servidor é um Mac OS X 10.6.8 Snow Leopard. As preocupações de segurança nos levaram a alterar o protocolo do servidor para HTTPS, portanto, assinamos com nossa autoridade de certificação. Então, tudo isso está em execução e todas as páginas da web agora são fornecidas por HTTPS, exceto pelo repositório SVN.
Tentar fazer check-out do HTTTP SVN original gera isso:
svn co http://my.domain/svn/repos .
svn: E175011: Unable to connect to a repository at URL 'http://my.domain/svn/repos'
svn: E175011: Repository moved temporarily to 'https://my.domain/svn/repos'; please relocate
Então, eu acho que isso é justo, já que tecnicamente foi realmente realocado. Tentar o mesmo comando com a opção HTTPS me fornece isso:
svn co https://my.domain/svn/repos .
Error validating server certificate for 'https://my.domain:443':
- The certificate is not issued by a trusted authority.
Use the fingerprint to validate the certificate manually!
Certificate information:
- Hostname: my.domain
- Valid: from Apr 26 13:22:21 2017 GMT until Jul 9 23:59:00 2019 GMT
- Issuer: CA, DE([email protected])
- Fingerprint: ...
(R)eject, accept (t)emporarily or accept (p)ermanently? t
Authentication realm: <https://my.domain:443> Redmine SVN Repository
Password for 'admin':
E isso também é bom, exceto que não aceita nenhuma das contas do Redmine User (ou as contas do sistema local). Por que vale a pena, dou-lhe a parte relevante do log do servidor:
[Tue May 09 14:38:12 2017] [error] "DAV Off" cannot be used to turn off a subtree of a DAV-enabled location.
[Tue May 09 14:38:12 2017] [error] [client IP] mod_auth_apple: User admin: authentication failure for "/svn": User not found by checkpw
[Tue May 09 14:38:12 2017] [error] [client IP] mod_auth_apple: User admin: authentication failure for "/svn": User not found in htaccess file
Espero que alguém tenha tentado fazer algo assim em um servidor Mac antes. Idealmente, eu gostaria de instruções passo a passo sobre como alterar a configuração do servidor SVN de HTTP para HTTPS; isso pelo menos deve estar em algum lugar lá fora (eu não encontrei nada até agora). Obrigado por todos os ponteiros.
EDIT: Eu colo o código relevante do httpd.conf abaixo:
#this handles SVN authentication through Redmine DB
# /svn location for users
PerlLoadModule Apache::Redmine
<Location "/svn">
DAV Off
SVNParentPath "/usr/local/svn"
Order deny,allow
Deny from all
Satisfy any
# If a client tries to svn update which involves updating many files,
# the update request might result in an error Server sent unexpected
# return value (413 Request Entity Too Large) in response to REPORT
# request,because the size of the update request exceeds the limit
# allowed by the server. You can avoid this error by disabling the
# request size limit by adding the line LimitXMLRequestBody 0
# between the <Location...> and </Location> lines.
LimitXMLRequestBody 0
# Only check Authentication for root path, nor again for recursive
# folder.
# Redmine core does only permit access on repository level, so this
# doesn't hurt security. On the other hand it does boost performance
# a lot!
SVNPathAuthz off
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
AuthType Basic
AuthName "Redmine SVN Repository"
AuthUserFile /dev/null
#read-only access
<Limit GET PROPFIND OPTIONS REPORT>
Require valid-user
Satisfy any
</Limit>
# write access
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
## for mysql
RedmineDSN "DBI:mysql:database=redmine;host=localhost"
RedmineDbUser 'user'
RedmineDbPass 'password'