Friday, April 1, 2011

Setup and configure SSL / HTTPS with Verisign CA on Linux CENTOS [step by step tutorial]

If you need to install SSL certificates on your server web you have to follow this step by step tutorial about Verisign's certificate installation. (i get a 30 days trial cert to test it)

1) Install mod_ssl with command:

yum install mod_ssl


2) Create a directory in which we save our key files and move to it

mkdir /home/ssl/
cd /home/ssl/

3) Execute the follow command on a single line:

openssl x509 -req -days 365 -in www.domain_name.com.csr -signkey secure.domain_name.com.key -out www.domain_name.com.crt


4) Copy the key into .secure file.

cp www.domain_name.com.key www.domain_name.com.key.secure


5) Execute the command to generate the file

openssl rsa -in www.domain_name.com.secure -out www.domain_name.com.key

6) Type the following command to generate a private key that is file encrypted. You will be prompted for the password to access the file and also when starting your webserver. Warning: If you lose or forget the passphrase, you must purchase another certificate.

openssl genrsa -des3 -out www.domain_name.com.key 1024


7) You could also create a private key without file encryption if you do not want to enter the passphrase when starting your webserver:

openssl genrsa -out www.domain_name.com.key 1024

Note: i recommend that you name the private key using the domain name that you are purchasing the certificate for ie domainname.key

8) Type the following command to create a CSR with the RSA private key (output will be PEM format):

openssl req -new -key www.domain_name.com.key -out www.domain_name.com.csr

* Note: You will be prompted for your PEM passphrase if you included the "-des3" switch in step 6.

* 2nd Note: When creating a CSR you must follow these conventions. Enter the information to be displayed in the certificate. The following characters can not be accepted: < > ~ ! @ # $ % ^ * / \ ( ) ?.,&

8) Put the output of cat command in a txt file.

cat www.domain_name.com.csr > mycert.txt


9) Copy source from that file mycert.txt and paste it into the Verisign's CSR form validation.

10) wait for the Versign's confirmation email with the browser cert file that will be send to you within 24 hours.


Once you received that email you'll have to download and install the Test Root CA Certificate into your browser. This is the procedure to follow:

11.1) Save the test root CA certificate from Verisign website on a file with .cer extension (ex. browser.cer) and install it into your browser.

11.2) Copy the intermediate CA certificate content from verisign website into a file called (intermediate.crt)

11.4) Copy the certificate that you received with the email in a file called (public.crt)

11.5) Copy the content of the bundle (two cert) into a file ca-cert.crt

-----BEGIN CERTIFICATE-----
MIIEVzCCAz+gAwIBAgIQFoFkpCjKEt+rEvGfsbk1VDANBgkqhkiG9w0BAQUFADCB
.....
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
IEVzCCAz+gAwIBAgIQFoFkpCjKEt+rEvGfsbk1VDANBgkqhkiG9w0BAQUFADCB
......
-----END CERTIFICATE-----

11.6) Copy all .crt files (public.crt, intermediate.crt, ca-bundle.crt) into /etc/pki/tls/certs/ on your centos distribution.

11.7) Copy www.domain_name.com.key to /etc/pki/tls/private/ folder

11.8) Now you could check virtual host and insert these lines of code into your /etc/httpd/conf.d/ssl.conf file:


DocumentRoot /var/www/html/yourwebdir
ServerPath /var/www/html/yourwebdir
ServerName www.domain_name.com:443
ServerAlias *.domain_name.com:443
DirectoryIndex index.html index.php index.shtml
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/public.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.domain_name.com.key
SSLCertificateChainFile /etc/pki/tls/certs/intermediate.crt
SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt

SSLOptions +StdEnvVars


SSLOptions +StdEnvVars

SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"



12) Now restart apache /etc/init.d/httpd restart


If everything goes [OK] you could check your https and ssl at your web address: https://www.domain_name.com


Good luck!








Read more...

Wednesday, May 5, 2010

Add a custom script as a daemon on reboot of a redhat centos server


To enable a custom script in a redhat centos server linux box you have to follow those simple steps.
This is useful when you have to start a server process that don't return anything..
One example is openoffice server aka (soffice).
Suppose you have two files.
The first file A call the second file named B-so
The file A contains a code like this

# Source function library.
. /etc/rc.d/init.d/functions

[ -f /usr/local/sbin/B-so ] || exit 0


prog="B-so"
start() {
echo -n $"Starting $prog: "
daemon /usr/local/sbin/B-so 1> /dev/null 2> /dev/null &
RETVAL=$?
echo
return $RETVAL
}

stop() {
if test "x`ps aux | grep B-so | grep -v grep | awk '{ print $2 }'`" != x; then
echo -n $"Stopping $prog: "
killproc B-so
killall processname
echo
fi
RETVAL=$?
return $RETVAL
}

case "$1" in
start)
start
;;

stop)
stop
;;

status)
status B-so
;;

restart)
stop
start
;;

*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 1

esac

exit $RETVAL


Copy the file A in the directory /etc/init.d/

Copy the second file B.so in the dir /usr/local/sbin/
The file B-so contains a code like this:


. /etc/rc.d/init.d/functions

LOG="/root/mail2fax/log/safe-B.log"


while :
do
...done some stuff ...
done



After that you have to add a line with the path to the service to start in the /etc/rc.local.

Check if permissions on those two files are set on 0755,then you could reboot your server and verify if the service start successfully.


img credits wmliu



Read more...

Tuesday, April 27, 2010

Install Odf-converter-integrator on Linux Redhat Centos

Hi all, today i will explain to you how to install odf-converter-integrator, an open tool to convert Microsoft Office 2007 files with .docx .pptx, .xlsx extensions in open file format ODF , you have to download the software rpm into a temp dir. So change your current dir to /tmp/ dir and launch the command:

1) Launch:
wget http://linuxsoft.cern.ch/cern/slc5X/x86_64/yum/extras/odf-converter-integrator-0.2.3-2.i386.rpm

2) Execute the command:
rpm -ivh odf-converter-integrator-0.2.3-2.i386.rpm

3) When process completed the installation you could run your cmd for conversion
OdfConverter somefile.docx

If you use this tool with OpenOffice you could do very intersting different kinds of conversion...



Read more...

Sunday, March 21, 2010

[Solved] DocumentConverter.py via PHP on Linux RedHat Centos


This is a guide to fix the use of PYODConverter on linux RedHat Centos 5 box users.
If you wanna use DocumentConverter.py written by artofsolving, you have to follow those steps.

1)Install openoffice on your linux box or verify installation through commands:
Install Packages

yum install openoffice.org-xxx.

Check Packages

yum list | grep "openoffice".


2)Install python-uno bridge

3)Download DocumentConverter.py

4)Add the following line below "import uno"...

import sys
sys.path.append("/usr/lib/openoffice.org/program")


5)Run openoffice like a service with -headless and -nofirtstartwizard options.


/usr/lib/openoffice.org/program/soffice -nologo -nofirststartwizard -headless -norestore -invisible "-accept=socket,host=localhost,port=8100,tcpNoDelay=1;urp;"




The port 8100 must be the same for client and server obviously.


If you execute this php code



$cmd = "/usr/bin/python /var/www/html/DocumentConverter.py inputfile $outputfile.pdf 2>&1 | tee /var/www/html/mylog.txt"; // tee used to log output and errors of cmd
exec($cmd, $results);
printf("Exec Output: {".print_r($results).";}\n"); //print results of exec command


you'll probably get this error:


[Java framework] Error in function createSettingsDocument (elements.cxx).javaldx failed!

And other permissions problems on tmp dirs.

To solve this, simply add into your php script those lines of code

if (!file_exists("/tmp/ooohomedir"))
{
mkdir("/tmp/ooohomedir");
chmod("/tmp/ooohomedir", 0777);
}
putenv("HOME=/tmp/ooohomedir");







If you have another workaround about this please leave a comment below.
C u.


Read more...

Tuesday, July 14, 2009

How to code a wordpress plugin.

Hi everybody. I would like to bookmark this screencast tutorial that explains how to build a simple wordpress plugin.



You could find the complete tutorial on tutplus




Read more...