2010-04-29 19 views
5

Estoy utilizando CruiseControl.net para una integración continua. Creé un repositorio para mi proyecto usando el servidor VisualSvn (usa la Autenticación de Windows). Ambos servidores están alojados en el mismo sistema (Os-Microsoft Windows Server 2003 sp2).Verificar fallas de modificación en el contenido Integración usando Servidor VisualSVN y Cruisecontrol.net

Cuando forzo a compilar el proyecto usando CruiseControl.net "Tarea (s) fallida (s): Svn: CheckForModifications" se muestra como el mensaje. Cuando me registré el informe de compilación, que dice como sigue:

BUILD EXCEPTION 
Error Message: ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: OPTIONS of 'https://system:8443/svn/folder/Source': **Server certificate verification failed: issuer is not trusted** (https://system:8443). Process command: C:\Program Files\VisualSVN Server\bin\svn.exe log **sameUrlAbove** -r "{2010-04-29T08:35:26Z}:{2010-04-29T09:04:02Z}" --verbose --xml --username ccnetadmin --password cruise --non-interactive --no-auth-cache 
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.ProcessSourceControl.Execute(ProcessInfo processInfo) 
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Svn.GetModifications (IIntegrationResult from, IIntegrationResult to) 
at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild) 
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to) 
at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request) 

Mi nodo SourceControl en el ccnet.config es como se muestra a continuación:

<sourcecontrol type="svn"> 
    <executable>C:\Program Files\VisualSVN Server\bin\svn.exe</executable> 
    <trunkUrl> 
    check out url 
    </trunkUrl> 
    <workingDirectory> 
    C:\ProjectWorkingDirectories\folder\Source 
    </workingDirectory> 
    <username> 
    ccnetadmin 
    </username> 
    <password> 
    cruise 
    </password> 
</sourcecontrol> 

Puede alguno sugerir cómo evitar este error?

Respuesta

1

de verificación del certificado de servidor fracasó: el emisor no es de confianza

Cualquiera de conectarse a través de HTTP o añadir el certificado de CA a la máquina de construcción.

5

El mensaje de error dice subversión

svn: OPTIONS of ' https://sp-ci.sbsnetwork.local:8443/svn/IntranetPortal/Source ': Server certificate verification failed: issuer is not trusted (https://sp-ci.sbsnetwork.local:8443).

Esto me dice que su 'svn' no confía en el certificado HTTPS de su servidor.

Puedes solucionar este problema mediante la realización de algo así como

svn info https://sp-ci.sbsnetwork.local:8443/svn/IntranetPortal/Source 

como el climatizador funcionando usuario y luego aceptar el certificado.

(Otra opción sería hacer una climatizador --trust-server-cert a SVN, pero no sé qué opción de configuración que necesita para eso)

+0

Hola, No entendí bien lo que dijo. Podría explicar lo que entiende por: "realizar algo así como información de SVN https: //sp-ci.sbsnetwork.local: 8443/SVN/IntranetPortal/Fuente como el usuario que ejecuta climatizador y luego aceptar el certificado" Gracias por su respuesta ... – Harun

+0

Similar a mis pensamientos. – DilbertDave

+0

use PsExec de Sysinternal Suite (http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx) para abrir un símbolo del sistema suplantado como LocalSystem y acepte permanentemente el certificado – Vasea

1

Tome una mirada here para un similar (pero ligeramente diferente) problema que tuve hace un tiempo.

Básicamente no puede ejecutar el servicio como la cuenta normal de 'SISTEMA', necesita especificar y configurar un usuario local, con los permisos apropiados y configurar el servicio para que se ejecute como ese usuario.

A continuación, inicie sesión en el servidor como el usuario y ejecute cualquier comando svn en la línea de comando;
Bert sugiere:

svn info https://sp-ci.sbsnetwork.local:8443/svn/IntranetPortal/Source 

se le solicitará el nombre de usuario y contraseña SVN que luego se almacena en la ubicación adecuada. También se le debe pedir que acepte el certificado, lo cual debe hacer.

Ahora el servicio debería ejecutarse sin ningún problema.

+0

Hola, En realidad, mi problema no es sobre comenzando ccnet como un servicio. No tengo ningún problema para hacerlo. Pero mientras se usa la configuración de ccnet aparece el siguiente error: Tarea (s) fallida (s): Svn: CheckForModifications "aparece el mensaje. Cuando revisé el informe de compilación, dice" Falló la verificación del certificado del servidor: el emisor no es de confianza " ..... para más detalles vea mi pregunta .... – Harun

+0

Además, cuando intento realizar el pago manualmente usando la misma URL del servidor visualsvn, aparece una ventana emergente que dice "el certificado no es de confianza, si continuar con esto" "Después de aceptarlo definitivamente, el proceso de pago funciona bien. Pero cuando lo intenté a través de la configuración de ccnet, ocurrió el error que mencioné en mi comentario anterior. ¿Tiene alguna sugerencia para solucionarlo? ... – Harun

+0

Ok, no estoy 100% seguro de qué te refieres con "verificar usando ccnet config". Si todo funciona bien cuando se ejecuta como un servicio, ¿cuándo ves el error? Mis problemas se debían al acceso a SVN a través de https porque cuando ejecutaba CCNet como servicio, necesitaba asegurarme de que el usuario que ejecutaba el servicio tenía un certificado válido. Iniciar sesión como ese usuario y ejecutar un comando svn me permitió aceptar el certificado y todo fue bien. – DilbertDave

0

Estaba tratando de hacer la integración continua en un dominio de servidor de Windows . El servidor del controlador de dominio debe emitir un certificado para el servidor svn (instalado en uno de los dominios). Luego importe el certificado emitido al servidor svn.

el procedimiento incluyen dos pasos:

1) Creación de una solicitud para emitir un certificado de controlador de dominio.

  For that follow the steps: 
       i) open visual svn server 
       ii) "right click" **visualSVN Server(Local)** and "select" 
         **properties** 
       iii) "select" **change certificate** in **cetificates** 
       iv) "check" the **prepare certificate request** and "provide" the 
         domain controller as server and do as asked. 
        v) "save" the request as **.req extension** and **finish** the 
        process 

2) Someter el archivo .req al controlador de dominio para obtener el certificado de

  For that follow the steps: 
        i) run **cmd** 
        ii) run **certreq -submit -attrib "CertificateTemplate: WebServer" 
         .req file with its path** 
        iii) save the certificate with **.cer** extension. 
        iv) do **i,ii,iii** of the **step 1** 
        v) "check" the **Import Signed Certificate** and "browse" the 
         **.cer file** and install it.      
0

ejecuta el servicio climatizador de forma predeterminada en la cuenta de servicio local, por lo que asegúrese de que los certificados son aceptadas a través cuenta de servicio local o cambiar el usuario de servicio "Iniciar sesión como" al usuario que aceptó los certificados.

reference

0

que fija el mismo problema aquí en mi pregunta a Pass arguments to svn when using CruiseControl.net

Es, básicamente, tiene que alterar su bloque SourceControl en ccnet.config y utilizar un archivo por lotes que pasa el --trust-servidor- opción cert para svn

Cuestiones relacionadas