Compare Revisions

Modifying Mochitest SSL behavior

Revision 140945:

Revision 140945 by Mayhemer on

Revision 140946:

Revision 140946 by Mayhemer on

Title:
Modifying Mochitest SSL behavior
Modifying Mochitest SSL behavior
Slug:
Modifying_Mochitest_SSL_behavior
Modifying_Mochitest_SSL_behavior
Tags:
"Automated testing", Mochitest
"Automated testing", Mochitest
Content:

Revision 140945
Revision 140946
n8      Mochitest provides functionality for tests to effectively sn8      Mochitest provides functionality for tests to effectively s
>imulate execssssution across a wide variety of protocols, hosts, >imulate execution across a wide variety of protocols, hosts, and 
>and ports, including over SSL using the https protocol.  The>ports, including over SSL using the https protocol.  The vas
> vast majority of tests can use existing functionality, but occas>t majority of tests can use existing functionality, but occasiona
>ionally a test may need new functionality to be written, particul>lly a test may need new functionality to be written, particularly
>arly if it uses SSL in non-trivial ways.  This article docum> if it uses SSL in non-trivial ways.  This article documents
>ents how SSL in Mochitest is implemented and how you can modify i> how SSL in Mochitest is implemented and how you can modify its b
>ts behavior to add support for particular needs.>ehavior to add support for particular needs.
n10    <h4>n10    <h4 id="SSL_certificate_management">
n23    <h4>n23    <h4 id="Customizing_the_list_of_https_hosts">
n27      To <span style="color: rgb(51,102,255)">simply add a new htn27      To <span style="color: rgb(51, 102, 255);">simply add a new
>tps host</span> for which the default server certificate will be > https host</span> for which the default server certificate will 
>used just add it to the list in server-locations.txt. The content>be used just add it to the list in server-locations.txt. The cont
> is self explanatory. To reflect these changes run:>ent is self explanatory. To reflect these changes run:
n33      To <span style="color: rgb(51,102,255)">add a new https hosn33      To <span style="color: rgb(51, 102, 255);">add a new https 
>t that has no server certificate assigned</span>, even the defaul>host that has no server certificate assigned</span>, even the def
>t one, just add an option 'nocert' after the host name, like this>ault one, just add an option 'nocert' after the host name, like t
>:>his:
n42    <h4>n42    <h4 id="Creating_a_new_host_with_a_new_certificate">
n46      To <span style="color: rgb(51,102,255)">add a new host withn46      To <span style="color: rgb(51, 102, 255);">add a new host w
> a new server certificate, different from the default one</span>,>ith a new server certificate, different from the default one</spa
> you have to generate or provide the certificate and bound it wit>n>, you have to generate or provide the certificate and bound it 
>h the host. Just decide if you want to sign it by the prepared CA>with the host. Just decide if you want to sign it by the prepared
> certificate or create a new CA certificate by your self to sign > CA certificate or create a new CA certificate by your self to si
>the new server certificate or create a self-signed server certifi>gn the new server certificate or create a self-signed server cert
>cate or add your own certificate and key you already have.<br>>ificate or add your own certificate and key you already have.<br>
n48      <span style="color: rgb(153,51,0)">Note:</span> to generaten48      <span style="color: rgb(153, 51, 0);">Note:</span> to gener
> new certificates it is most appropriate to use <span style="colo>ate new certificates it is most appropriate to use <span style="c
>r: rgb(153,51,0)"><strong>certutil</strong></span> and <span styl>olor: rgb(153, 51, 0);"><strong>certutil</strong></span> and <spa
>e="color: rgb(153,51,0)"><strong>pk12util</strong></span> binarie>n style="color: rgb(153, 51, 0);"><strong>pk12util</strong></span
>s built as part of a test-enabled build. These utils reside in ob>> binaries built as part of a test-enabled build. These utils res
>j-dir/dist/bin.>ide in obj-dir/dist/bin.
n51      <span style="color: rgb(153,51,0)">Note:</span> you will chn51      <span style="color: rgb(153, 51, 0);">Note:</span> you will
>ange the certificate database while creating a new certificate. T> change the certificate database while creating a new certificate
>hus, don't forget to commit the new certificate database with the>. Thus, don't forget to commit the new certificate database with 
> new test.>the new test.
n60      <span style="color: rgb(153,51,0)">Note:</span> in this casn60      <span style="color: rgb(153, 51, 0);">Note:</span> in this 
>e keep the command to generate your server certificate for case w>case keep the command to generate your server certificate for cas
>hen the prepared CA get renewed. You must then generate the serve>e when the prepared CA get renewed. You must then generate the se
>r certificate again.>rver certificate again.
n70      &nbsp;&nbsp; &nbsp;<span style="color: rgb(255,0,0)">&nbsp;n70      &nbsp;&nbsp; &nbsp;<span style="color: rgb(255, 0, 0);">&nb
> IMPORTANT NOTE:</span> make sure you allocate a new unique seria>sp; IMPORTANT NOTE:</span> make sure you allocate a new unique se
>l number (the '-m' option). If there were two or more certificate>rial number (the '-m' option). If there were two or more certific
>s with the same<br>>ates with the same<br>
n79      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>build/pgo/certs</code>n79      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <code>build/pgo/certs</code>
><code>$ certutil -S -s "MyNewCertificationAuthority" -s "CN=My Ce><code>$ certutil -S -s "MyNewCertificationAuthority" -s "CN=My Ce
>rtificate Authority" -t "C,," -x -m 1 -v 120 -n "my certificate a>rtificate Authority" -t "C,," -x -m 1 -v 120 -n "my certificate a
>uthority" -2 -d .<br></code>&nbsp;&nbsp; &nbsp;&nbsp; type 'Y', c>uthority" -2 -d .<br></code> &nbsp;&nbsp; &nbsp;&nbsp; type 'Y', 
>onfirm with enter<br>>confirm with enter<br>
n89      <code>&nbsp;&nbsp;&nbsp;</code> <code>build/pgo/certs</coden89      <code>&nbsp;&nbsp;&nbsp;</code> <code>build/pgo/certs</code
>><code>$ certutil -L -d . -n "my certificate authority" -a -o myc>><code>$ certutil -L -d . -n "my certificate authority" -a -o myc
>ertauth.ca<br></code>&nbsp;&nbsp; &nbsp;&nbsp; add this file to t>ertauth.ca<br></code> &nbsp;&nbsp; &nbsp;&nbsp; add this file to 
>he repository, it must be checked in with the new test<br>>the repository, it must be checked in with the new test<br>
n110      <code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>build/pgo/certs<n110      <code>&nbsp;&nbsp;&nbsp;&nbsp;</code><code>build/pgo/certs<
>/code><code>$ pk12util -i my-own-server-cert.p12 -d .<br></code>&>/code><code>$ pk12util -i my-own-server-cert.p12 -d .<br></code> 
>nbsp;&nbsp; &nbsp;&nbsp; enter correct password of the PKCS12 mod>&nbsp;&nbsp; &nbsp;&nbsp; enter correct password of the PKCS12 mo
>ule, nickname of the cert will be used to refer it in server-loca>dule, nickname of the cert will be used to refer it in server-loc
>tions.txt, see bellow<br>>ations.txt, see bellow<br>
n115      Now <span style="color: rgb(51,102,255)">you must let Mochin115      Now <span style="color: rgb(51, 102, 255);">you must let Mo
>test know about your new server certificate</span>. Edit the serv>chitest know about your new server certificate</span>. Edit the s
>er-locations.txt as follows:<br>>erver-locations.txt as follows:<br>
t120    <h4>t120    <h4 id="Regenerating_the_temporary_CA_certificate">

Back to History