Enterprise Applications for the iPhoneTM Home eTask FAQ Support Yahoo-Setup Certificates If you are running a corporate site or private site and getting certificate warnings on eTask, the iPhone mail app, or Safari you may wish to consider creating a self signed certificate that you can install in your iPhone to "trust" your site. Traditionally corporations pay a third party, like Verisign, a fee to certify that they are who they say they are so the general public is assured their site is safe. The process is implemented with a certificate that is digitally "signed" by a trusted or Root authority (Verisign). When you use a browser, mail app, or other application to access the site it is presented with the site's certificate. Your browser then sees that it is signed by Verisign. The browser then looks in your computers local "key-chain" to see if Verisign is a trusted Root certificate authority. It is so you then browse the site with no warnings or worries. If you are running your own site with a default or unsigned certificate you will probably be presented with a warning to either trust the site or exit. Some browsers, like Firefox, allow you to view the certificate information and optionally accept temporarily or permanently. In the case of the iPhone you may find that you are continually prompted with these warnings. One way to prevent these warnings is to create a self-signed certificate and then install the Root certificate on the iPhone so it recognizes your certificate as coming from a trusted site. The following steps were compiled from actual experience setting up a Kerio Mail Server (KMS) for personal use as well as helping others for small corporate use. I cannot vouch for their effectiveness with other servers but it may be a good starting point. First an overview of the process: 1. Using openssl create a self signed root Certificate Authority (CA). 2. Using the self signed root CA create a certificate for the domain you use with Kerio. This is the domain you use to navigate to the site, not the mail domain. 3. Install this new certificate into KMS. Do not use the built in mechanism to request a certificate. That is for getting one from one of the trusted CA's (e.g Verisign). 4. e-mail your root CA to yourself as an attachment. It requires a crt extension. I recommend you do this while you are connected to a LAN local to your KMS, then delete the e-mail and empty your trash so this cert isn't floating around the internet. 5. On the iPhone click on this attachment. The iPhone will give you lots of warnings (are you sure?, are you really sure? etc.). Once you accept these a new "profile" will appear on the iPhone. Now when using Active Sync, the web-interface or eTask all in secure mode the iPhone will see your web site certificate and follow the key chain, see your "trusted" self signed root certificate and authenticate properly. By the way this root certificate can also be used for IE on Vista. You install this root certificate in the certificate manager on Vista and IE will stop warning you as well. The details of these steps get pretty complicated. The hardest part is getting the openssl config file setup properly. I have included the text for a couple of bat files for use on windows and the OpenSSL config file. You will have to edit these but it shouldn't be to bad. If you are using one of the UNIX flavors (mac, Linux, Solaris etc.) please e-mail me and I can provide some c-shell scripts. These will take more editing since I didn't use them specifically for Kerio. 1. If you haven't done so already, install OpenSSL. You can find it at OpenSSL.org for almost any OS. 2. Open a DOS (cmd) window and crate a directory called SSL_Dev somewhere on your file system. 3. Copy the following DOS bat file scripts into two files genRootCA.bat and genCert.bat in the SSL_Dev directory. Only copy the code between the #### lines. #### genRootCA.bat ################# rem @echo off set SSL_DATA=.\ssl set SSL_HOME=\users\USER\Downloads\openssl-0.9.8e %SSL_HOME%\bin\openssl req -new -x509 -extensions v3_ca -keyout %SSL_DATA%\private\cakey.key -out %SSL_DATA%\cacert.crt -days 3650 -config %SSL_DATA%\openssl.cnf ################################### #### genCert.bat #################### @echo off set SSL_DATA=.\ssl set SSL_HOME=\users\USER\Downloads\openssl-0.9.8e %SSL_HOME%\bin\openssl req -new -nodes -out %SSL_DATA%\CERTreq.pem -keyout %SSL_DATA%\private\CERTkey.key -config %SSL_DATA%\openssl.cnf %SSL_HOME%\bin\openssl ca -out %SSL_DATA%\CERTcert.crt -config %SSL_DATA%\openssl.cnf -infiles %SSL_DATA%\CERTreq.pem ################################### 4. Edit both files to adjust the path to OpenSSL 5. Create a directory called ssl. Go to this directory. 6. Copy the text between the #### lines into a file called openssl.cnf. #### openssl.cnf ##################### dir = /users/USER/SSL_Dev/ssl [ ca ] default_ca = CA_default [ CA_default ] serial = $dir/serial database = $dir/index.txt new_certs_dir = $dir/certs certificate = $dir/cacert.crt private_key = $dir/private/cakey.key default_days = 3650 default_md = md5 preserve = no emil_in_dn = no name_opt = ca_default cert_opt = ca_default policy = policy_match unique_subject = no [ policy_match ] countryName = match stateOrProvinceName = match organizationName = match organizationalUnitName = optional commonName = supplied emailAddress = optional [ req ] default_bits = 1024 default_keyfile = cakey.key distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] countryName = Country Name (2 letter code) countryName_default = US countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) stateOrProvinceName_default = STATE localityName = Locality Name (eg, city) localityName_default = CITY 0.organizationName = Organization Name (eg, company) 0.organizationName_default = COMPANY organizationalUnitName = Organizational Unit Name (eg, section) organizationalUnitName_default = Home commonName = Common Name (eg, YOUR name) commonName_default = URL.com commonName_max = 64 emailAddress = Email Address emailAddress_default = admin@mailsite.com emailAddress_max = 64 [ usr_cert ] basicConstraints=CA:FALSE subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer [ v3_ca ] basicConstraints = CA:true subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always [ v3_req ] basicConstraints = CA:FALSE subjectKeyIdentifier=hash ############################################ 7. Edit openssl.cnf as follows: Change the first line (the one that starts with dir) so the path to openssl is correct. Note use / to separate paths (even on DOS). If your country is not the US then change US to your country. Change STATE to your state (e.g. Texas) Change CITY to your city Change COMPANY to your company Change URL.com to your domain. Do not put www or mail in front. This will come later. Just put your registered domain name. Change admin@mailsite.com to your administrators e-mail address 8. Create two more directories here, private and certs 9. Create a text file called index.txt and copy the number 100000 into the first line. Copy this file to one called serial Your files should now look like: File <path>/SSL_Dev/genRootCA.bat File <path>/SSL_Dev/genCert.bat Dir <path>/SSL_Dev/ssl Dir <path>/SSL_Dev/ssl/certs File <path>/SSL_Dev/ssl/openssl.cnf Dir <path>/SSL_Dev/ssl/private File <path>/SSL_Dev/ssl/serial File <path>/SSL_Dev/ssl/index.txt 10. Run the genRootCA.bat first. You should be able to accept the default for all prompts. 11. Run the genCert.bat next. VERY important: When prompted for the Common Name use the full URL to your web or mail server web-interface. For example if you site is site.com and your web-mail URL is https://webmail.site.com then use webmail.site.com 12. The root certificate will be called cacert.crt and the self-signed certificate will be called CERTcert.crt. Both located in the <path>/SSL_Dev/ssl directory 13. Go to the Kerio admin console and install the CERTcert.crt certificate (Configuration->SSL Certificates). 11. E-mail (on a closed network) the cacert.crt file to yourself. Open this on the iPhone and double click the attachment. you will get lots of warnings. Accept them all. You may have to reboot the iPhone. Good Luck Dean DFAworks |
