Compare Revisions

Mochitest

Change Revisions

Revision 9855:

Revision 9855 by Mayhemer on

Revision 9856:

Revision 9856 by Mayhemer on

Title:
Mochitest
Mochitest
Slug:
Mochitest
Mochitest
Tags:
"Automated testing", "Developing Mozilla"
"Automated testing", "Developing Mozilla"
Content:

Revision 9855
Revision 9856
n244      To <span style="color: rgb(51, 102, 255);">simply add a newn244      To <span style="color: rgb(51, 102, 255);">simply add a new
> https host</span> for which the default server certificate will > https host</span> for which the default server certificate will 
>be used just add it to the list in server-locations.txt. The cont>be used just add it to the list in server-locations.txt. The cont
>ent is self explanatory. To reflect these changes run make at obj>ent is self explanatory. To reflect these changes run:
>-dir/testing/mochitest.<br> 
245      <br>245    </p>
246    <p>
247      <code>&nbsp;&nbsp;&nbsp; obj-dir/build/pgo$ make genserverc
 >erts</code>
248    </p>
249    <p>
n252      To <span style="color: rgb(51, 102, 255);">add a new host wn256      To <span style="color: rgb(51, 102, 255);">add a new host w
>ith a new server certificate</span> you have to generate or provi>ith a new server certificate, different from the default one</spa
>de the certificate and bound it with the host. Just decide if you>n>, you have to generate or provide the certificate and bound it 
> want to sign it by the prepared CA certificate or create a new C>with the host. Just decide if you want to sign it by the prepared
>A certificate by your self to sign the new server certificate or > CA certificate or create a new CA certificate by your self to si
>create a self-signed server certificate or add your own certifica>gn the new server certificate or create a self-signed server cert
>te and key you already have.<br>>ificate or add your own certificate and key you already have.<br>
nn261      <span style="color: rgb(153, 51, 0);">Note:</span> you will
 > change the certificate database while creating a new certificate
 >. Thus, don't forget to commit the new certificate database with 
 >the new test.
262    </p>
263    <p>
264      &nbsp;
265    </p>
266    <p>
n263      1. create a new certificate database somewhere in a temporan
>ry location:<br> 
264      <code>&nbsp;&nbsp;&nbsp; /tmp$ certutil -N -d .<br></code> 
>&nbsp;&nbsp; &nbsp;&nbsp; press enter twice to have a blank passw 
>ord<br> 
265      <br>
266      2. import the default CA with the private key to it:<br>
267      <code>&nbsp;&nbsp; &nbsp;/tmp$ pk12util -i /my-mozilla-src-
>root/build/pgo/certs/pgoca.p12 -d .<br></code> &nbsp;&nbsp; &nbsp 
>;&nbsp; press enter, password is blank<br> 
268      <br>
269      3. generate your new certificate, just an example, please r273      To generate your new certificate: (please replace "My" name
>eplace "My" names with something meaningful:<br>>s with something meaningful)
270      <code>&nbsp;&nbsp; &nbsp;/tmp$ certutil -S -n "MyNewTesting274    </p>
>ServerCert" -s "CN=my-new-testing-host.com" -c "pgo temporary ca" 
> -t "P,," -k rsa -g 1024 -m &lt;LARGE RANDOM NUMBER&gt; -v 120 -d 
> .<br></code> &nbsp;&nbsp; &nbsp;&nbsp; follow on-screen instruct 
>ions, "pgo temporary ca" is nickname of the prepared CA previousl 
>y imported to the database<br> 
275    <p>
276      <code>&nbsp; &nbsp; build/pgo/certs$ certutil -S -n "MyNewT
 >estingServerCert" -s "CN=my-new-testing-host.com" -c "pgo tempora
 >ry ca" -t "P,," -k rsa -g 1024 -m &lt;LARGE RANDOM NUMBER&gt; -v 
 >120 -d .</code>
277    </p>
278    <p>
279      &nbsp;&nbsp; &nbsp;&nbsp; follow on-screen instructions, "p
 >go temporary ca" is nickname of the prepared CA present in the da
 >tabase<br>
n274      4. export the new server certificate to a file<br>n
275      <code>&nbsp;&nbsp; &nbsp;/tmp$ pk12util -o /my-mozilla-src-
>root/build/pgo/certs/mynewtestingservercert.server -n "MyNewTesti 
>ngServerCert" -d .<br></code> &nbsp;&nbsp; &nbsp;&nbsp; press ent 
>er twice, the password must be blank otherwise the framework will 
> not be able to import the certificate and tree would fail to bui 
>ld<br> 
276      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; make sure you give the file 
>an extension '<strong>.server</strong>' otherwise the framework w 
>ould not find the file<br> 
277      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add this new file to the rep
>ository, it must be checked in with the new test<br> 
278      <br>
n282      1. create a new certificate database somewhere in a temporan
>ry location:<br> 
283      <code>&nbsp;&nbsp; &nbsp;/tmp$ certutil -N -d .<br></code> 
>&nbsp;&nbsp; &nbsp;&nbsp; press enter twice to have a blank passw 
>ord<br> 
284      <br>
285      2. create a new CA certificate, just an example, please rep286      1. create a new CA certificate: (please replace "My" names 
>lace "My" names with something meaningful:<br>>with something meaningful)
287    </p>
288    <p>
286      <code>&nbsp;&nbsp; &nbsp;/tmp$ certutil -S -s "MyNewCertifi289      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>build/pgo/certs</code>
>cationAuthority" -s "CN=My Certificate Authority" -t "C,," -x -m ><code>$ certutil -S -s "MyNewCertificationAuthority" -s "CN=My Ce
>1 -v 120 -n "my certificate authority" -2 -d .<br></code> &nbsp;&>rtificate Authority" -t "C,," -x -m 1 -v 120 -n "my certificate a
>nbsp; &nbsp;&nbsp; type 'Y', confirm with enter<br>>uthority" -2 -d .<br></code> &nbsp;&nbsp; &nbsp;&nbsp; type 'Y', 
 >confirm with enter<br>
nn293      2. generate the server certificate as described in previous
 > section, just make sure to change the '-c "pgo temporary ca"' to
 > '-c "my certificate authority"' to reflect you want to sign the 
 >server certificate by your new CA certificate
294    </p>
295    <p>
290      3. export the CA certificate:<br>296      3. export the CA certificate:
291      <code>&nbsp;&nbsp; &nbsp;/tmp$ certutil -L -d . -n "my cert297    </p>
>ificate authority" -a -o /my-mozilla-src-root/build/pgo/certs/myc 
>ertauth.ca<br></code> &nbsp;&nbsp; &nbsp;&nbsp; add this file to  
>the repository, it must be checked in with the new test<br> 
298    <p>
299      <code>&nbsp;&nbsp;&nbsp;</code> <code>build/pgo/certs</code
 >><code>$ certutil -L -d . -n "my certificate authority" -a -o myc
 >ertauth.ca<br></code> &nbsp;&nbsp; &nbsp;&nbsp; add this file to 
 >the repository, it must be checked in with the new test<br>
n294      <code>&nbsp;&nbsp;&nbsp; /tmp$ pk12util -o myca.p12 -n "my n302      <code>&nbsp;&nbsp;&nbsp;</code> <code>build/pgo/certs</code
>certificate authority" -d .<br></code>&nbsp;&nbsp; &nbsp;&nbsp; p>><code>$ pk12util -o myca.p12 -n "my certificate authority" -d .<
>rovide any password you wish<br>>br></code>&nbsp;&nbsp; &nbsp;&nbsp; provide any password you wish
295      <br>303    </p>
296      4. generate the server certificate as described in previous304    <p>
> section, step 3, just make sure to change the '-c "pgo temporary 
> ca"' to '-c "my certificate authority"' to reflect you want to s 
>ign the server certificate by your new CA certificate<br> 
297      <br>305      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to delete your CA certificat
 >e from the database (recommended), do:<br>
298      5. export the new server certificate to a file as described306      <code>&nbsp;&nbsp;&nbsp;</code> <code>build/pgo/certs</code
> in previous section, step 4, just change the nick name option '->><code>$ certutil -D -n "my certificate authority" -d .<br></code
>n "MyNewTestingServerCert"' to reflect nickname of your new serve>><br>
>r certificate<br> 
299      <br>
n303      1. create a new certificate database somewhere in a temporan
>ry location:<br> 
304      <code>&nbsp;&nbsp; &nbsp;/tmp$ certutil -N -d .<br></code> 
>&nbsp;&nbsp; &nbsp;&nbsp; press enter twice to have a blank passw 
>ord<br> 
305      <br>
306      2. generate a self signed server certificate, just an examp310      to generate a self signed server certificate:&nbsp;(please 
>le, please replace "My" names with something meaningful:<br>>replace "My" names with something meaningful)
311    </p>
312    <p>
307      <code>&nbsp;&nbsp; &nbsp;/tmp$ certutil -S -n "MySelfSigned313      <code>&nbsp;&nbsp;&nbsp; build/pgo/certs</code><code>$ cert
>ServerCertificate" -s "CN=my-new-testing-host.com" -x -t "P,," -m>util -S -n "MySelfSignedServerCertificate" -s "CN=my-new-testing-
> 1 -v 120 -d .<br></code><br>>host.com" -x -t "P,," -m 1 -v 120 -d .<br></code><br>
308      3. export it according to step 4 of section I<br>
309      <br>
n313      1. If you have already got the certificate and its related n317      1. import the existing server certificate and its private k
>private key convert it (if not already) to a PKCS12 module, give >ey from PKCS12 module:
>the certificate a meaningful nickname, that nickname will be used 
> to refer the certificate in server-locations.txt<br> 
318    </p>
319    <p>
320      <code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>build/pgo/certs<
 >/code><code>$ pk12util -i my-own-server-cert.p12 -d .<br></code> 
 >&nbsp;&nbsp; &nbsp;&nbsp; enter correct password of the PKCS12 mo
 >dule, nickname of the cert will be used to refer it in server-loc
 >ations.txt, see bellow<br>
n315      2. Rename the PKCS12 module file to have a '.server' extensn
>ion<br> 
316      <br>
317      3. Copy that file to /my-mozilla-src-root/build/pgo/certs<b
>r> 
318      <br>
319      4. Add the file to the repository, it must be checked in wi
>th the new test<br> 
320      <br>
321      5Optionally, if there is also a CA certificate the server322      2optionally, if there is also a CA certificate the server
> certificate is signed with and you need that CA be trusted, copy> certificate is signed with and you need that CA be trusted, copy
> this CA to /my-mozilla-src-root/build/pgo/certs and give it a '.> this CA to build/pgo/certs and give it a '.ca' extension, the fi
>ca' extension, the file should be an X.509 certificate in ASCII B>le should be an X.509 certificate in ASCII BASE64 formatting, mak
>ASE64 formatting, make sure to commit this file as well<br>>e sure to commit this file as well<br>
t325      <code># My testing host and its certificate bond<br>t326      <code>&nbsp;&nbsp;&nbsp;&nbsp;# My testing host and its bon
 >d to certificate nickname in the certificate database<br>
326      <a class=" link-https" href="https://my-new-testing-host.co327      &nbsp;&nbsp;&nbsp;&nbsp;<a class=" link-https" href="https:
>m:443" rel="freelink">https://my-new-testing-host.com:443</a>&nbs>//my-new-testing-host.com:443" rel="freelink">https://my-new-test
>p;&nbsp; privileged,cert=MyNewTestingServerCert<br></code><br>>ing-host.com:443</a>&nbsp;&nbsp; privileged,cert=MyNewTestingServ
 >erCert<br></code><br>
327      Run make at obj-dir/testing/mochitest to reflect the change328      Run <code>make</code> at <code>obj-dir/testing/mochitest</c
>s. If the build fails it is possible you created a certificate wi>ode> to reflect the changes. If the build fails it is possible yo
>th a same serial number as another certificate signed by the same>u created a certificate with a same serial number as another cert
> certification authority or two server certificates has a same ni>ificate signed by the same certification authority or two server 
>ckname. To check your certificate is present in the ssltunnel con>certificates has a same nickname.
>figured certificate database run:<br> 
328      <br>
329      <code>&nbsp;&nbsp; &nbsp;$ certutil -L -d /my-mozilla-src-r
>oot/build/pgo/certs<br></code><br> 
330      and you should see your server's certificate nickname on th
>e list. If not, make sure you put it to the correct place and gav 
>e it '.server' extension and you left the PKCS12 password blank. 

Back to History