linux poison RSS
linux poison Email
13

HowTo Create a self-signed SSL Certificate for Apache

Step 1: Generate a Private Key
The openssl toolkit is used to generate an RSA Private Key and CSR (Certificate Signing Request). It can also be used to generate self-signed certificates which can be used for testing purposes or internal usage.

The first step is to create your RSA Private Key. This key is a 1024 bit RSA key which is encrypted using Triple-DES and stored in a PEM format so that it is readable as ASCII text.

# openssl genrsa -des3 -out server.key 1024

Generating RSA private key, 1024 bit long modulus
…………………………………………………++++++
……..++++++
e is 65537 (0×10001)
Enter PEM pass phrase:
Verifying password - Enter PEM pass phrase:

Step 2: Generate a CSR (Certificate Signing Request)

Once the private key is generated a Certificate Signing Request can be generated. The CSR is then used in one of two ways. Ideally, the CSR will be sent to a Certificate Authority, such as Thawte or Verisign who will verify the identity of the requestor and issue a signed certificate. The second option is to self-sign the CSR, which will be demonstrated in the next section.

# openssl req -new -key server.key -out server.csr

Country Name (2 letter code) [IN]:IN
State or Province Name (full name) [Nikesh Jauhari]:Nikesh
Locality Name (eg, city) [Pune]:Pune
Organization Name (eg, company) [My Company Ltd]:Cybage Software Pvt. Ltd.
Organizational Unit Name (eg, section) []:Information Technology
Common Name (eg, your name or your server’s hostname) []:poison.hell.com
Email Address []:njauhari@cybage.com
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Step 3: Remove Passphrase from Key

One unfortunate side-effect of the pass-phrased private key is that Apache will ask for the pass-phrase each time the web server is started. Obviously this is not necessarily convenient as someone will not always be around to type in the pass-phrase, such as after a reboot or crash. mod_ssl includes the ability to use an external program in place of the built-in pass-phrase dialog, however, this is not necessarily the most secure option either. It is possible to remove the Triple-DES encryption from the key, thereby no longer needing to type in a pass-phrase. If the private key is no longer encrypted, it is critical that this file only be readable by the root user! If your system is ever compromised and a third party obtains your unencrypted private key, the corresponding certificate will need to be revoked. With that being said, use the following command to remove the pass-phrase from the key:

# cp server.key server.key.org
# openssl rsa -in server.key.org -out server.key


The newly created server.key file has no more passphrase in it.

-rw-r–r– 1 root root 745 Jun 29 12:19 server.csr
-rw-r–r– 1 root root 891 Jun 29 13:22 server.key
-rw-r–r– 1 root root 963 Jun 29 13:22 server.key.org

Step 4: Generating a Self-Signed Certificate

To generate a temporary certificate which is good for 365 days, issue the following command:

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Signature ok
………………………..
Getting Private key

Step 5: Installing the Private Key and Certificate

When Apache with mod_ssl is installed, it creates several directories in the Apache config directory. The location of this directory will differ depending on how Apache was compiled.

# cp server.crt /usr/local/apache/conf/ssl.crt
# cp server.key /usr/local/apache/conf/ssl.key


Step 6: Configuring SSL Enabled Virtual Hosts

SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
SetEnvIf User-Agent “.*MSIE.*” nokeepalive ssl-unclean-shutdown
CustomLog logs/ssl_request_log \
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

Step 7: Restart Apache and Test

/etc/init.d/httpd stop
/etc/init.d/httpd start


Now you can use https://yourwebservername.dowmain-name.


Read more
0

Virtual Hosting using Apache

If you want to maintain multiple domains/hostnames on your machine you can setup VirtualHost containers for them.
Please see the documentation at URL:http://www.apache.org/docs/vhosts/ for further details before you try to setup virtual hosts.

Sample


FQDN Document Root
Host Name www.hell.com
(192.168.0.1)
/var/www/html/
Virtual Host Name server.hell.com
(192.168.0.1)
/var/www/server/


BIND Setup

  • Add an Alias Name into BIND DB file
    www             IN      A       192.168.0.1
    server IN CNAME www

    Apache Setup

  • httpd.conf
    ...
    NameVirtualHost 192.168.0.1:80
    DocumentRoot /var/www/html/ ServerName _default_

    DocumentRoot /var/www/server/ ServerName server.hell.com
    ...
  • Read more
    2

    Scan vulnerability by using Nessus

    Nessus is an incredible commercial-grade vulnerability scanner also freely available under the Gnu Public License (GPL). Nessus can use Nmap to further probe networks for holes. Nessus can selectively scan for over 675 (and growing) known security problems. The resulting reports are organized by host, categorized by severity, and can be exported in a variety of formats, to include a very slick crosslinked HTML including pie charts. Links to fixes for known security problems are included.
    Installation

    Get the required files from : http://rpm.pbone.net/
    # rpm -ihv nessus-core-2.2.3-3.i586.rpm
    # rpm -ihv nessus-libraries-2.2.3-3.i586.rpm

    Initial Configuration
    Create a certificate
    # nessus-mkcert

    If you do not know how to answer, just press enter.
    Create a user
    # nessus-adduser

    Change the runlevel, and start
    # checkconfig nessusd on
    # /etc/init.d/nessusd start

    Update plugins
    To use up-to-date plugins, you need to register at http://www.nessus.org/register/
    After registering your e-mail, you will receive a message with an id as XXXX-XXXX-XXXX-XXXX-XXXX. You can simple enter like,
    # nessus-fetch --register XXXX-XXXX-XXXX-XXXX-XXXX
    # nessus-update-plugins -v
    Update automatically by crontab
    # crontab -u root -e
    Add following line.
    45 7 * * * /usr/sbin/nessus-update-plugins

    Scanning
    Start nessus
    # nessus &

    Login to nessus. Type login name and password.
    Go to "Plugins" tab and select plugins to perform scanning. For example, press "Enable all" button.
    Go to "Target" tab and enter targets. Type either a host name, a host IP address, or network as "192.168.0.0/24"
    Press "Start the scan" when you are ready. Wait a while

    You will see a report after a couple of moment. So take consideration of the result!


    Read more
    4

    Repair Corrupt RPM Database

    Strange things sometimes happen, one of them is a corrupt rpm database. This means that the computer tells you something is installed and it really is not.
    Here is how to solve this problem.

    First backup and then delete by doing the following command:
    $ su

    # cp /var/lib/rpm/__db.001 /home/nikesh
    # rm /var/lib/rpm/__db.001
    # cp /var/lib/rpm/__db.002 /home/nikesh
    # rm /var/lib/rpm/ __db.002
    # rpm –rebuilddb
    Read more
    0

    Erase the Content of Disk Drive

    After unmounting the disk drive’s partitions, issue the following command (while logged in as root):
    # badblocks -ws
    This will absolutely erase the drive and no tool can retrieve the data after.


    Read more
    Related Posts with Thumbnails