Bug 1312278

Summary: Jenkins template has hardcoded SSL certificate and password
Product: OpenShift Container Platform Reporter: Evgheni Dereveanchin <ederevea>
Component: ImageStreamsAssignee: Jim Minter <jminter>
Status: CLOSED ERRATA QA Contact: Wang Haoran <haowang>
Severity: low Docs Contact:
Priority: medium    
Version: 3.1.0CC: aos-bugs, bparees, dyan, jokerman, mmccomas, tdawson
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://access.redhat.com/documentation/en/openshift-enterprise/3.1/using-images/chapter-5-other-images#creating-a-jenkins-service-from-a-template
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Previously various OpenShift sample templates included an expired, self-signed X.509 certificate and key for www.example.com. These unnecessary certificates and keys have been removed from the templates.
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-18 12:39:19 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Evgheni Dereveanchin 2016-02-26 10:19:43 UTC
Description of problem:
Jenkins templates shipped with the installer have hardcoded certificates and password. This is insecure, this kind of data should be generated when an app is created from template.

Version-Release number of selected component (if applicable):
openshift-ansible-roles-3.0.35-1.git.0.6a386dd.el7aos.noarch

How reproducible:
Always

Steps to Reproduce:
1. check template files
/usr/share/ansible/openshift-ansible/roles/openshift_examples/files/examples/v1.1/quickstart-templates/jenkins-ephemeral-template.json
/usr/share/ansible/openshift-ansible/roles/openshift_examples/files/examples/v1.1/quickstart-templates/jenkins-persistent-template.json
2. import them into OpenShift during installation and deploy an app

Actual results:
jenkins deployed with hardcoded certificate and password equal to "password"

Expected results:
certificates are generated (or the default router cert is used) as well as the admin password

Additional info:

Comment 1 Ben Parees 2016-02-26 18:29:16 UTC
There is no good way to generate a cert from within a template today.  This is the best we can do to make it usable out of the box.  Users concerned about security should of course substitute their own certificate.

The password is settable via a parameter on the template, so again this can be set by users who care.

Comment 2 Evgheni Dereveanchin 2016-02-29 07:39:56 UTC
Why would you need to include a broken SSL certificate prone to MITM attachs for the route if the Router already has one (which may actually be a normal signed certificate)?

Comment 3 Ben Parees 2016-02-29 14:02:13 UTC
It's entirely possible that cert is no longer needed to ensure good jenkins behavior.  Michal, can you see if we can remove the cert from the jenkins template route definition?

Comment 4 Michal Fojtik 2016-07-18 08:12:29 UTC
Sorry for the delay, I'm going to check this out today.

Comment 5 Jim Minter 2016-09-22 11:43:20 UTC
Taking a look.  I can see the hard coded cert & key, but AFAICS there is no hardcoded password now.

Comment 6 Ben Parees 2016-09-22 11:55:07 UTC
that's true, the jenkins admin password is now randomly generated.

Comment 7 Jim Minter 2016-09-22 14:09:11 UTC
https://github.com/openshift/origin/pull/11053

Comment 8 openshift-github-bot 2016-09-27 18:35:48 UTC
Commit pushed to master at https://github.com/openshift/origin

https://github.com/openshift/origin/commit/4232ddf19329b042d25ebbe1520b31b47bc89fef
Fix bug 1312278 Jenkins template has hardcoded SSL certificate.

Remove expired www.example.com certificate and key from route objects in templates across examples/ and test/ excluding test/old-start-configs.

In some cases this may alter the precise 'insecure certificate' error that users would see by default when accessing these apps.  Previously they'd have got an expired www.example.com cert; now they'll get the default router cert, which currently by default is self-signed and not wildcarded.

Comment 9 Troy Dawson 2016-10-18 16:06:19 UTC
This has been merged into ose and is in OSE v3.4.0.12 or newer.

Comment 11 Dongbo Yan 2016-10-19 07:08:41 UTC
Verified
openshift v3.4.0.12
kubernetes v1.4.0+776c994
etcd 3.1.0-alpha.1

1.Create jenkins server using jenkins template
$ oc new-app jenkins-ephemeral
$ oc new-app jenkins-persistent
2.Access jenkins webconsole via route url

Actual results: jenkins server is ready, could access jenkins webconsole via route url

Comment 13 errata-xmlrpc 2017-01-18 12:39:19 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:0066