Eu tenho um servidor Fedora executando o Jenkins que instalo via yum. Está tudo bem, posso acessá-lo http://ci.mydomain.com.
Mas agora, quero acessá-lo https://ci.mydomain.compara que o login com nome de usuário e senha seja criptografado.
O seguinte é o meu /etc/sysconfig/jenkinsarquivo. Iniciar o Jenkins funciona, mas não consigo acessar o Jenkins com o navegador da web com https://ci.mydomain.comou http://ci.mydomain.com:443, ...
você pode usar o authbind para usar qualquer porta abaixo de 1000 e ainda executar o jenkins como não raiz.
Esta página deve ajudá-lo a configurá-lo atrás do Apache (que seria compatível com HTTPS): https://wiki.eclipse.org/Hudson-ci/Running_Hudson_behind_Apache
Além de ser um proxy reverso "normal", você precisará disso (como mostrado nessa página):
Obrigado pela resposta. Não tenho o Apache instalado e em execução; só tenho o servidor Linux com o Jenkins.
Nesse caso, crie um keystore com seu certificado e use httpsPort(e parâmetros relacionados): groups.google.com/group/jenkinsci-users/browse_thread/thread/…
Ok, eu tenho meu próprio certificado adicionado ao keystore. Mas como devo ligar agora? Onde devo fazer isso? In any case: if I put only --httpsPort=8443 or i put --httpsKeyStore=/ path/to/keystore --httpsKeyStorePassword=myPassowrd in my HUDSON_ARGS?
Coloque todos os parâmetros necessários (porta, local da loja e senha). Em seguida, inicie o Jenkins e aponte seu navegador para http://yourhostname:8443/.
@ Umesh.ABhat Deve ser corrigido agora.
— 25418 Bruno
Caso esteja usando o Nginx e não o Apache, convém proxy_redirect http:// https://;reescrever o cabeçalho Location quando a resposta voltar do Jenkins.
Uma configuração completa do nginx em que o SSL é encerrado com o Nginx e proxy internamente para o Jenkins usando o 8080 pode ser assim:
Note-se que (a partir de algum dia?) Jenkins pode gerar a chave para você, tudo que você precisa fazer é definir o --httpsPort=(portnum)parâmetro JENKINS_ARGS.
No meu caso, defino JENKINS_PORT="-1"(desativei o http) e defina o --httpsPort=8080que funcionou bem para meus próprios propósitos.
Observe que qualquer porta abaixo de 1000 geralmente requer acesso root, então escolha uma porta maior que essa ...
( Link para mais informações)
wiki.jenkins-ci.org/display/JENKINS/… é a documentação oficial para isso, a propósito.
Seria bom se essa página tivesse alguma menção sobre a geração de sua própria chave - infelizmente, você precisa inferir esse recurso ao perceber que a utilização de um "certificado existente" requer etapas diferentes do padrão (que usa seu próprio código gerado automaticamente)
Aviso: isso é fácil o suficiente para chaves geradas automaticamente; no entanto, tentei usar essas instruções com um certificado real e configurar o keystore foi uma grande dor (já que os keystores têm duas senhas e as ferramentas padrão não são transparentes sobre isso).
Nota: Isso não funciona com o OpenJDK, apenas com o Oracle JRE, porque dependesun.security.x509.CertAndKeyGen . Além disso, ele foi quebrado com o Java 8 até muito recentemente (Jenkins 2.38 corrigiu isso). Pior ainda, diz o changelog desse lançamento This option is deprecated and will be removed in a future release. We strongly recommend you create self-signed certificates yourself and use --httpsKeyStore.
— nh2 26/01
Para um servidor Ubuntu (supondo que você tenha instalado apt-get install jenkins):
Você deseja editar /etc/default/jenkinsna parte inferior do arquivo, edite Jenkins_args. Nos meus argumentos, desabilitei o acesso http (usando -1) e coloquei o SSL na porta Jenkins padrão (8080). A parte mais importante aqui é que você enviou um httpsPort e um certificado / chave (se você tiver um, caso contrário, poderá deixá-los fora do que é gerado automaticamente). Coloco as crts no apache e depois as uso para as duas, mas você pode colocá-las em qualquer lugar.
Em alguns casos, você precisará usar um Java Key Store. Primeiro, converta suas chaves:
Agora use os argumentos do Jenkins como
Além disso, consulte https://serverfault.com/a/569898/300544
Verifique se a senha de exportação que você fornece opensslcorresponde à "senha do keystore de origem" solicitada por keytool. Além disso, a senha não pode ficar em branco.