Convert .p12 bundle to server certificate and key files

Seperate Private Key and Certificate file

#Generate certificates bundle file

openssl pkcs12 -nokeys -in server-cert-key-bundle.p12 -out server-ca-cert-bundle.pem

#Generate server key file.

openssl pkcs12 -nocerts -nodes -in server-cert-key-bundle.p12 -out server.key

Convert a PKCS#12 file (.pfx .p12) containing a private key and certificates to PEM

openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes

Create a .pfx/.p12 certificate file using OpenSSL

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt

Src: https://www.sslshopper.com/article-most-common-openssl-commands.html

Share

Install phpIPAM on Ubuntu 20.04/18.04

The objective of this guide is to help you Install and Configure phpIPAM on Ubuntu 20.04/18.04 Linux distribution. phpIPAM is an open-source php-based web IP address management application (IPAM). Its goal is to provide light, modern and useful IP address management. phpIPAM uses MySQL database backend and jQuery libraries, Ajax and HTML5/CSS3 features.

Install phpIPAM on Ubuntu 20.04/18.04

phpIPAM has a number of dependencies that we need to install before we can install and configure phpIPAM. These are:

  • MySQL / MariaDB server
  • php / php-fpm for nginx
  • php modules
  • Apache / nginx web server
  • phpIPAM domain – ipam.example.com (should be replaced with your domain)

Continue reading “Install phpIPAM on Ubuntu 20.04/18.04” »

Share

Fixing Vesta CP Exim Email Incoming error with T=local_delivery defer (-1): Malformed value “0MM”

********
Applicable for vesta cp 1.0.0-5 version)
********

If you lately encounter an issue with mail incoming with vesta cp after an auto update took place, your /var/log/exim/main.log shows something similar below-

2021-12-19 03:39:42 1mxheU-000374-0o == mail@domain.com R=localuser T=local_delivery defer (-1): Malformed value “0MM” (expansion of “${extract{6}{:}{${lookup{$l$….

Step-1 Finding vesta version

Well the following steps I had to do to solve. Before further proceedings we need to find out vesta version. My particular version 1.0.0-5 is generating this error of receiving email- specially where disk quota of email users had “Unlimited” quota. Continue reading “Fixing Vesta CP Exim Email Incoming error with T=local_delivery defer (-1): Malformed value “0MM”” »

Share

Pushing Docker Images to a Docker Repository

The next logical step after creating a new image from an existing image is to share it with a select few of your friends, the whole world on Docker Hub, or other Docker registry that you have access to. To push an image to Docker Hub or any other Docker registry, you must have an account there.

This section shows you how to push a Docker image to Docker Hub. To learn how to create your own private Docker registry, check out How To Set Up a Private Docker Registry on Ubuntu 14.04.

To push your image, first log into Docker Hub.

docker login -u docker-registry-username

You’ll be prompted to authenticate using your Docker Hub password. If you specified the correct password, authentication should succeed. Continue reading “Pushing Docker Images to a Docker Repository” »

Share

Docker Commands

Working with Docker Images

Docker containers are built from Docker images. By default, Docker pulls these images from Docker Hub, a Docker registry managed by Docker, the company behind the Docker project. Anyone can host their Docker images on Docker Hub, so most applications and Linux distributions you’ll need will have images hosted there.

To check whether you can access and download images from Docker Hub, type:

docker run hello-world

The output will indicate that Docker in working correctly:

Output
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:41a65640635299bab090f783209c1e3a3f11934cf7756b09cb2f1e02147c6ed8
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

Docker was initially unable to find the hello-world image locally, so it downloaded the image from Docker Hub, which is the default repository. Once the image downloaded, Docker created a container from the image and the application within the container executed, displaying the message. You can search for images available on Docker Hub by using the docker command with the search subcommand. For example, to search for the Ubuntu image, type: Continue reading “Docker Commands” »

Share

Install Docker on Debain 10

Installing Docker

The Docker installation package available in the official Debian repository may not be the latest version. To ensure we get the latest version, we’ll install Docker from the official Docker repository. To do that, we’ll add a new package source, add the GPG key from Docker to ensure the downloads are valid, and then install the package.

First, update your existing list of packages:

sudo apt update

Next, install a few prerequisite packages which let apt use packages over HTTPS:

sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

Then add the GPG key for the official Docker repository to your system: Continue reading “Install Docker on Debain 10” »

Share

Bash Script To Restart Linux Server Services

Here’s the command line code to create the file in nano:

sudo nano /opt/launch-crashed-services.sh

Here is the bash script.

#!/bin/bash

service mysql status | grep 'active (running)' > /dev/null 2>&1
if [ $? != 0 ]
then
sudo service mysql restart > /dev/null
fi

service nginx status | grep 'active (running)' > /dev/null 2>&1
if [ $? != 0 ]
then
sudo service nginx restart > /dev/null
fi

service php7.2-fpm status | grep 'active (running)' > /dev/null 2>&1
if [ $? != 0 ]
then
sudo service php7.2-fpm restart > /dev/null
fi

Continue reading “Bash Script To Restart Linux Server Services” »

Share

Build an openDNS recursive resolver DNS using Bind

It’s a small thing, but someone might feel it to be useful of running a public DNS like google has 8.8.8.8. You actually can build a recursive DNS and serve to the world (instead to your network user only! 🙂 )

It’s pretty simple, all you need is the have your bind package installed and some very basic configurations like below-

nano /etc/bind/named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
nano /etc/bind/named.conf.options

Continue reading “Build an openDNS recursive resolver DNS using Bind” »

Share

Install Proxmox VE 7 on Debian 11 (Bullseye)

In this guide, we will cover a step-by-step installation of Proxmox VE 7 virtualization software on Debian 11 (Bullseye) Linux system. It’s recommended to deploy Proxmox VE server from a Bare-metal_ISO_Installer, but it’s sometimes inevitable to deploy it on a running instance of Debian 11 (Bullseye) server.

Setup Pre-requisites

For the installation of Proxmox VE 7 on Debian 11 (Bullseye), you need the following requirements to be met;

  • A running instance of Debian Bullseye
  • A 64-bit processor with support for the Intel 64 or AMD64 CPU extensions.
  • Access to Debian server terminal as root or standard user with sudo
  • Server needs internet access
  • Enough hardware resources to be used in Virtualizing other operating systems

Continue reading “Install Proxmox VE 7 on Debian 11 (Bullseye)” »

Share

Install Netxtcloud on Debian 10

Install Apache, MariaDB and PHP

NextCloud runs on the webserver, written in PHP and uses MariaDB to store their data. So you will need to install Apache, MariaDB, PHP and other required packages on your system. You can install all of them by running the following command:

apt-get install apache2 libapache2-mod-php mariadb-server php-xml php-cli php-cgi php-mysql php-mbstring php-gd php-curl php-zip wget unzip -y

Once all the packages are installed, open the php.ini file and tweak some recommended settings:

nano /etc/php/7.3/apache2/php.ini

Change the following settings:

memory_limit = 512M
upload_max_filesize = 1024M
post_max_size = 1024M
max_execution_time = 300
date.timezone = Asia/Dhaka

Save and close the file when you are finished. Then, start the Apache and MariaDB service and enable them to start after system reboot with the following command: Continue reading “Install Netxtcloud on Debian 10” »

Share

SSL on Debian 10 Apache2

Assuming you have an SSL certificate already downloaded and available on the server.

root@www:~#nano /etc/apache2/sites-available/default-ssl.conf
# line 3: change admin email

ServerAdminwebmaster@srv.world

# line 32,33: change to the certs gotten in section [1]

SSLCertificateFile /etc/letsencrypt/live/www.srv.world/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.srv.world/privkey.pem

# line 42: uncomment and change to the chain-file gotten in section

SSLCertificateChainFile /etc/letsencrypt/live/www.srv.world/chain.pem
root@www:~#a2ensite default-ssl
Enabling site default-ssl

Continue reading “SSL on Debian 10 Apache2” »

Share