<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ashutosh Kumar</title>
    <description>The latest articles on DEV Community by Ashutosh Kumar (@blastoise).</description>
    <link>https://dev.to/blastoise</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F485093%2F6b934859-1529-49f2-bbfe-4df11566a4af.jpg</url>
      <title>DEV Community: Ashutosh Kumar</title>
      <link>https://dev.to/blastoise</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/blastoise"/>
    <language>en</language>
    <item>
      <title>Enabling HTTPS on your website</title>
      <dc:creator>Ashutosh Kumar</dc:creator>
      <pubDate>Sun, 09 Oct 2022 16:31:28 +0000</pubDate>
      <link>https://dev.to/blastoise/enabling-https-on-your-website-37dn</link>
      <guid>https://dev.to/blastoise/enabling-https-on-your-website-37dn</guid>
      <description>&lt;p&gt;Most of the websites today on the internet uses HTTPS protocol and there are multiple reasons supporting it. In this article I'll show you how you can use HTTPS on your existing website hosted on &lt;strong&gt;NGINX&lt;/strong&gt; or &lt;strong&gt;Apache&lt;/strong&gt; web server.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is HTTPS?
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;S&lt;/strong&gt; in &lt;strong&gt;HTTPS&lt;/strong&gt; stands for &lt;strong&gt;"secure"&lt;/strong&gt;. HTTPS builds upon the original &lt;strong&gt;Hypertext Transfer Protocol (HTTP)&lt;/strong&gt; standard to offer a more secure browsing experience. It uses &lt;strong&gt;Transport Layer Security (TLS)&lt;/strong&gt; protocol to encrypt the network traffic. HTTPS protects the privacy and integrity of any data in transit and authenticates a website for the end-user.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages of Using HTTPS
&lt;/h2&gt;

&lt;p&gt;Some advantages of using HTTPS are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;It protects users against man-in-the-middle (MITM) attacks that can be launched from compromised or insecure networks. Hackers can use such techniques to steal your customer’s sensitive information.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Confidence&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;The green padlock which appears on a secured site can give customers peace of mind that your website can be trusted and their information is safe.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Better SEO score&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Search Engines prefer sites which supports HTTPS.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is Let's Encrypt?
&lt;/h2&gt;

&lt;p&gt;To enable HTTPS on your website, you need to get a certificate (a type of file) from a &lt;strong&gt;Certificate Authority (CA)&lt;/strong&gt;. &lt;strong&gt;Let’s Encrypt&lt;/strong&gt; is a &lt;strong&gt;CA&lt;/strong&gt;. In order to get a certificate for your website’s domain from Let’s Encrypt, you have to demonstrate control over the domain.&lt;br&gt;
Let’s Encrypt leverages the &lt;strong&gt;Automatic Certificate Management Environment (ACME)&lt;/strong&gt; protocol to automate the certificate granting process through a challenge-response technique. With Let’s Encrypt, you do this using software that uses the ACME protocol which typically runs on your web host.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is Certbot?
&lt;/h2&gt;

&lt;p&gt;Certbot is a free, open source software tool for automatically using Let’s Encrypt certificates on manually-administrated websites to enable HTTPS. It is compatible with most operating systems as well as the most popular web server software, such as Apache and NGINX. Certbot is responsible for communicating with Let’s Encrypt to request the certificate, perform any required ACME challenges, install the certificate, and configure the web server. It can also automatically handle the certificate renewal process.&lt;/p&gt;
&lt;h2&gt;
  
  
  Steps to enable HTTPS on your website
&lt;/h2&gt;

&lt;p&gt;Before we begin you must need a website accessible over HTTP using your desired domain. Breaking this down further, the following components are required:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;A server running on Linux with credentials to a standard user account (belonging to the sudo group) and the ability to access the server through SSH or Lish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A registered domain name with DNS records pointing to the IPv4 (and optionally IPv6) address of your server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The NGINX/Apache web server software installed on your server and configured for your domain.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  1. Installing snapd
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://snapcraft.io/about" rel="noopener noreferrer"&gt;Snap&lt;/a&gt; is a package manager developed by Canonical (creators of Ubuntu). Software is packaged as a &lt;em&gt;snap&lt;/em&gt; (self-contained application and dependencies) and the &lt;em&gt;snapd&lt;/em&gt; tool is used to manage these packages. The reason why snaps are becoming popular is because they are applications packaged with all their dependencies to run on all popular Linux distributions from a single build. They update automatically and roll back gracefully.&lt;/p&gt;

&lt;p&gt;Since certbot is packaged as a snap, we’ll need to install snapd before installing certbot.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If snapd is not installed, then run the following command:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
  &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;snapd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Install the core snap using the following command to ensure that you have the latest version of snapd:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;sudo &lt;/span&gt;snap &lt;span class="nb"&gt;install &lt;/span&gt;core
  &lt;span class="nb"&gt;sudo &lt;/span&gt;snap refresh core
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2. Installing Certbot
&lt;/h3&gt;

&lt;p&gt;The next step is to install Certbot using the snap command.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you have any Certbot packages installed using an OS package manager like &lt;strong&gt;apt&lt;/strong&gt;, &lt;strong&gt;dnf&lt;/strong&gt;, or &lt;strong&gt;yum&lt;/strong&gt;, you should remove them before installing the Certbot snap to avoid conflicts with the new Snap package. The exact command to do this depends on your OS. Here assuming that the server is running Ubuntu.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;sudo &lt;/span&gt;apt remove certbot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Use Snap to install Certbot.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;sudo &lt;/span&gt;snap &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--classic&lt;/span&gt; certbot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Configure a symbolic link to the certbot executable using the &lt;strong&gt;ln&lt;/strong&gt; command.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;sudo ln&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; /snap/bin/certbot /usr/bin/certbot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  3. Requesting TLS/SSL Certificate using Certbot
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Run Certbot to start the certificate request&lt;/strong&gt;:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When Certbot runs, it requests and installs certificate file along with a private key file. When used with the NGINX/Apache option (--nginx/--apache), Certbot also automatically edits the configuration files for NGINX/Apache, which dramatically simplifies configuring HTTPS for your web server.&lt;/p&gt;

&lt;p&gt;Request a certfifcate and automatically configure it(recommend):&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;NGINX&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;sudo &lt;/span&gt;certbot &lt;span class="nt"&gt;--nginx&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For &lt;strong&gt;Apache&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;sudo &lt;/span&gt;certbot &lt;span class="nt"&gt;--apache&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Request a certificate without configuring:&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;NGINX&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;sudo &lt;/span&gt;certbot certonly &lt;span class="nt"&gt;--nginx&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For &lt;strong&gt;Apache&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;sudo &lt;/span&gt;certbot certonly &lt;span class="nt"&gt;--apache&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To request the certificate without relying on your NGINX/Apache installation, you can instead use the standalone plugin (&lt;strong&gt;--standalone&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;During the installation process, Certbot will prompt you for some basic information including your email address and domain name.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enter email address&lt;/strong&gt;. The first prompt is to request an email address where Certbot can send urgent notices about the domain or registration. This should be the address of the web server administrator.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Accept terms of service&lt;/strong&gt;. Certbot next asks you to agree to the Let’s Encrypt terms of service. Use the link in the output to download the PDF file and review the document. If you agree with the terms, enter &lt;strong&gt;Y&lt;/strong&gt;. Entering &lt;strong&gt;N&lt;/strong&gt; terminates the certificate request.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Optionally subscribe to mailing list&lt;/strong&gt;. Certbot asks if you want to subscribe to the EFF mailing list. You can answer either &lt;strong&gt;Y or N without affecting the rest of the installation&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enter domain name(s)&lt;/strong&gt;. Certbot now requests a domain name for the certificate. For each domain name, you should request separate certificates with and without the www prefix. If you have more than one domain to certify, separate the names with either a space or a comma.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Certbot&lt;/strong&gt; then communicates with &lt;strong&gt;Let’s Encrypt&lt;/strong&gt; to request the certificate(s) and perform any necessary challenges as defined in the &lt;strong&gt;ACME standard&lt;/strong&gt; (see &lt;a href="https://letsencrypt.org/docs/challenge-types/" rel="noopener noreferrer"&gt;Challenge Types&lt;/a&gt;). In most cases, &lt;strong&gt;ownership&lt;/strong&gt; can be proven through the &lt;strong&gt;HTTP challenge&lt;/strong&gt;, which automatically adds a file on your web server. If you wish to change the challenge type or perform challenge manually, see the &lt;a href="https://certbot.eff.org/docs/using.html#manual" rel="noopener noreferrer"&gt;Manual&lt;/a&gt; section in the Certbot documentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the operation is successful, Certbot confirms the certificates are enabled. It also displays some information about the directories where the certificates and key chains are stored, along with the expiration date. Certificates typically expire in &lt;strong&gt;90 days.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FJiheanz.png%2520align%3D" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FJiheanz.png%2520align%3D" alt="Installation Process part -1" width="1920" height="1032"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;center&gt;&lt;em&gt;Requesting TLS/SSL Certificate using Certbot&lt;/em&gt;&lt;/center&gt;

&lt;p&gt;Your website will now use HTTPS. To confirm, go to your website and make sure to enter the URL with the &lt;code&gt;https:/&lt;/code&gt; protocol. If a lock appears to the left of the domain name in the browser's address bar, the certificate is most likely functioning properly. If the certificate is not correctly installed, the browser displays a warning page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Renewing a TLS/SSL Certificate Using Certbot
&lt;/h2&gt;

&lt;p&gt;Upon installation, Certbot is configured to renew any certificates automatically.&lt;/p&gt;

&lt;p&gt;The command to renew certbot is installed in one of the following locations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;/etc/crontab/&lt;/li&gt;
&lt;li&gt;/etc/cron.*/*&lt;/li&gt;
&lt;li&gt;systemctl list-timers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is not necessary to manually request an updated certificate or run Certbot again unless the site configuration changes. However, Certbot makes it possible to test the auto-renew mechanism or to forcibly update all certificates.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test Automated Renewals
&lt;/h3&gt;

&lt;p&gt;You can test automatic renewal for your certificates by running this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;certbot renew &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Certbot inspects the certificates and confirms that they are not due for renewal, but simulates the process nonetheless. It displays information about whether the renewal would have been successful.&lt;/p&gt;

&lt;p&gt;To manually force Certbot to renew all certificates, use renew command without any options&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;certbot renew
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://certbot.eff.org/instructions?ws=apache&amp;amp;os=ubuntufocal" rel="noopener noreferrer"&gt;Certbot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linode.com/docs/guides/enabling-https-using-certbot-with-nginx-on-ubuntu#deleting-a-tlsssl-certificate-using-certbot" rel="noopener noreferrer"&gt;Linode&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope this article helps you in enabling HTTPS on your website.&lt;/p&gt;

&lt;p&gt;Questions, suggestions, a word of thanks is always encouraged.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>nginx</category>
      <category>https</category>
      <category>security</category>
    </item>
    <item>
      <title>AES Encryption in Linux</title>
      <dc:creator>Ashutosh Kumar</dc:creator>
      <pubDate>Fri, 01 Oct 2021 09:42:00 +0000</pubDate>
      <link>https://dev.to/blastoise/aes-encryption-in-linux-585f</link>
      <guid>https://dev.to/blastoise/aes-encryption-in-linux-585f</guid>
      <description>&lt;p&gt;Ever felt the need of hiding stuff from the world. In this article, I'll show you how you can encrypt and decrypt your data using the AES Encryption technique. We'll use the openssl command for this purpose.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Symmetric Encryption?
&lt;/h2&gt;

&lt;p&gt;Symmetric encryption is a type of encryption where only one key (a secret key) is used to both encrypt and decrypt data. By using symmetric encryption algorithms, data is converted to a form that cannot be understood by anyone who does not possess the secret key to decrypt it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Advanced Encryption Standard (AES)?
&lt;/h2&gt;

&lt;p&gt;Advanced Encryption Standard (also known as Rijndael), is one of the best symmetric encryption algorithm. AES is a &lt;a href="https://en.wikipedia.org/wiki/Block_cipher" rel="noopener noreferrer"&gt;block encryption algorithm&lt;/a&gt; and thus supports five modes which are as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ECB mode: Electronic Code Book mode&lt;/li&gt;
&lt;li&gt;CBC mode: Cipher Block Chaining mode&lt;/li&gt;
&lt;li&gt;CFB mode: Cipher Feedback mode&lt;/li&gt;
&lt;li&gt;OFB mode: Output Feedback mode&lt;/li&gt;
&lt;li&gt;CTR mode: Counter mode&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In this article, we will encrypt our data using CBC mode. ECB is generally not preferred as it is not secure. The command-line tool that we will use is &lt;strong&gt;openssl&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is OpenSSL
&lt;/h2&gt;

&lt;p&gt;OpenSSL is a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library. OpenSSL supports many different cryptographic operations, such as symmetric key encryption, public/private key pair generation, public-key encryption, hash functions, digital signatures, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;openssl&lt;/strong&gt; comes pre-installed in most Linux distributions. If it is not pre-installed then you can install it using your Linux package manager.&lt;/p&gt;

&lt;h2&gt;
  
  
  Encrypting a file
&lt;/h2&gt;

&lt;p&gt;The following command is used to encrypt a file:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 250000 -salt -in InputFilePath -out OutputFilePath&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After the execution of the command, it will ask you for setting the passphrase (secret key). Without the passphrase, nobody in this world can decrypt your file because brute-forcing AES is very difficult.&lt;/p&gt;

&lt;p&gt;Let's learn about the different options that we provided.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;openssl&lt;/strong&gt; is the command-line tool that we are using.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;enc&lt;/strong&gt; is used to specify the cipher name&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;-aes-256-cbc&lt;/strong&gt; is the cipher name along with the mode of operation which is CBC(Cipher Block Chaining mode)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;-md sha512&lt;/strong&gt; specifies which digest to use for the generation of the key from the passphrase. The default value from version 1.1.0 is SHA256. Before version 1.1.0 MD5 was the default digest.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;-pbkdf2&lt;/strong&gt; specifies to use PBKDF2 (Password-Based Key Derivation Function 2) algorithm&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;-iter 250000&lt;/strong&gt; is overriding the default count of iterations for the password. High values increase the time required to brute-force the resulting file. This option enables the use of the PBKDF2 algorithm to derive the key.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;-salt&lt;/strong&gt; Use salt in Key Derivation Function(KDF). This is the default behaviour and thus this option is not required.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Decrypting a file
&lt;/h2&gt;

&lt;p&gt;Use the same command but add &lt;strong&gt;-d&lt;/strong&gt; option to it. The command is as follows:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;openssl enc -aes-256-cbc -d -md sha512 -pbkdf2 -iter 250000 -salt -in InputFilePath -out OutputFilePath&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Encrypting and Decrypting Multiple Files
&lt;/h2&gt;

&lt;p&gt;The above command works only on a single file thus to encrypt and decrypt multiple files you can first convert it into a &lt;strong&gt;tar&lt;/strong&gt; file (you can even compress it) and then apply the same command.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Personal Preference
&lt;/h2&gt;

&lt;p&gt;I also use the same command but I also add &lt;strong&gt;-a&lt;/strong&gt; and &lt;strong&gt;-A&lt;/strong&gt; options to my command. &lt;strong&gt;-a&lt;/strong&gt; is used for Base64 encode/decode and &lt;strong&gt;-A&lt;/strong&gt; is used with &lt;strong&gt;-a&lt;/strong&gt; to specify base64 buffer as a single line.&lt;/p&gt;

&lt;p&gt;Thus the command I use for encryption and decryption is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Encryption&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;openssl enc -aes-256-cbc -a -A -md sha512 -pbkdf2 -iter 250000 -salt -in InputFilePath -out OutputFilePath&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Decryption&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;openssl enc -aes-256-cbc -a -A -d -md sha512 -pbkdf2 -iter 250000 -salt -in InputFilePath -out OutputFilePath&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Fun Fact
&lt;/h2&gt;

&lt;p&gt;This is the same encryption algorithm that was used by Elliot Alderson in the TV series Mr Robot to encrypt data.&lt;/p&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://unix.stackexchange.com/a/507132" rel="noopener noreferrer"&gt;Unix Stackexchange&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope this article helped you learn about using AES encryption.&lt;/p&gt;

&lt;p&gt;Questions, suggestions, a word of thanks is always encouraged.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>bash</category>
      <category>archlinux</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>Wireless Headset Microphone Issue for Linux</title>
      <dc:creator>Ashutosh Kumar</dc:creator>
      <pubDate>Thu, 26 Aug 2021 12:07:00 +0000</pubDate>
      <link>https://dev.to/blastoise/wireless-headset-microphone-issue-for-linux-23ol</link>
      <guid>https://dev.to/blastoise/wireless-headset-microphone-issue-for-linux-23ol</guid>
      <description>&lt;p&gt;Configuring microphone in a bluetooth headset in Linux is a difficult task. I have seen a lot of queries regarding this on several forums. I recently fixed this issue for myself in Manjaro KDE.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does this issue arise?
&lt;/h2&gt;

&lt;p&gt;Most of the linux distribution use PulseAudio to manage sound settings. But pulseaudio with default installation only supports A2DP sink profile for High Fidelity Playback. This configuration only supports unidirectional audio transfer (Laptop to Headset). For using headset as both input and output we need to make use of HSP/HFP sink profile which is not present in the default installation of pulseaudio due to it’s buggy nature.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;

&lt;p&gt;There are few libraries which adds the support for HSP/HFP in pulseaudio such as oFono and phonesim but it takes a lot of effort to setup and also does not guarantee good results. A better solution is to replace PulseAudio with PipeWire.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is PipeWire
&lt;/h3&gt;

&lt;p&gt;PipeWire acts as a drop-in replacement for PulseAudio and offers an easy way to set up Bluetooth headsets. It includes out-of-the-box support for A2DP sink profiles using SBC/SBC-XQ, AptX, LDAC or AAC codecs, and HFP/HSP.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation for Manjaro KDE
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;First remove pulseaudio along with all it's dependencies by running the following command:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo pacman -Rdd manjaro-pulse pulseaudio pulseaudio-alsa pulseaudio-equalizer pulseaudio-jack pulseaudio-lirc pulseaudio-rtp pulseaudio-zeroconf pulseaudio-bluetooth pulseaudio-ctl sof-firmware&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install pipewire and all the necessary dependencies using the following command:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo pacman -S manjaro-pipewire&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now execute the following commands to start the service:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;systemctl --user enable pipewire.socket --now&lt;/p&gt;

&lt;p&gt;systemctl --user start pipewire.service&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reboot the system&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To check if the replacement is working, run the following command and see the output:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ pactl info
...
Server Name: PulseAudio (on PipeWire 0.3.32)
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Installation for Ubuntu Users:
&lt;/h3&gt;

&lt;p&gt;Open your terminal and follow these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;We will use a PPA for adding Pipewire to Ubuntu. Execute the following command to do this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the package list using the following command:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo apt update&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install Pipewire using the following command:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo apt install pipewire&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;There is also a dependency that is needed to be installed with Pipewire, otherwise you will face the issue of “Bluetooth headset won’t connect after installing pipewire”. Install the dependency by executing the following command:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo apt install libspa-0.2-bluetooth&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now, to install the client libraries:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo apt install pipewire-audio-client-libraries&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reload the daemon:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;systemctl --user daemon-reload&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Disable PulseAudio:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;systemctl --user --now disable pulseaudio.service pulseaudio.socket&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you are on Ubuntu 20.04, you also need to “mask” the PulseAudio by:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;systemctl --user mask pulseaudio&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I am not sure but if possible you can try to run this on other versions too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;After a new update of Pipewire, you also need to enable pipewire-media-session-service:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;systemctl --user --now enable pipewire-media-session.service&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To check if it is working, run the following command and see the output:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ pactl info
...
Server Name: PulseAudio (on PipeWire 0.3.32)
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If it doesn’t show up then try restarting Pipewire by this command:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;systemctl --user restart pipewire&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If it’s still not showing your microphone, you can try rebooting once and remove and pair your Bluetooth device again to check if it works now.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you want to rollback all the changes we did, you can do it by using:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;systemctl --user unmask pulseaudio&lt;/p&gt;

&lt;p&gt;systemctl --user --now enable pulseaudio.service pulseaudio.socket&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://askubuntu.com/a/1339898" rel="noopener noreferrer"&gt;AskUbuntu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope this article helped you in configuring your wireless headphone microphone.&lt;/p&gt;

&lt;p&gt;Questions, suggestions, a word of thanks is always encouraged.&lt;/p&gt;

</description>
      <category>ubuntu</category>
      <category>bash</category>
      <category>pipewire</category>
      <category>pulseaudio</category>
    </item>
    <item>
      <title>How To Merge Multiple PDF/Images to PDF In Ubuntu Linux(ImageMagick)</title>
      <dc:creator>Ashutosh Kumar</dc:creator>
      <pubDate>Thu, 07 Jan 2021 07:16:00 +0000</pubDate>
      <link>https://dev.to/blastoise/how-to-merge-multiple-pdf-images-to-pdf-in-ubuntu-linux-imagemagick-50ef</link>
      <guid>https://dev.to/blastoise/how-to-merge-multiple-pdf-images-to-pdf-in-ubuntu-linux-imagemagick-50ef</guid>
      <description>&lt;p&gt;It's not very uncommon that we might need to merge different PDF's or images into one PDF in our daily task. So in this article we will learn about a very powerful command line tool called ImageMagick and learn how to use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing ImageMagick through &lt;strong&gt;apt&lt;/strong&gt;
&lt;/h2&gt;




&lt;p&gt;ImageMagick comes preinstalled in Ubuntu 20.04 as there are many packages that use this tool as a dependency.&lt;/p&gt;

&lt;p&gt;Installing ImageMagick through apt (Advanced Package Tool) is pretty straightforward. The package is already available in standard Ubuntu repository&lt;/p&gt;

&lt;p&gt;Open the terminal and execute the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First refresh your local package index by executing:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;sudo apt update&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Next execute the following command to install ImageMagick:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;sudo apt install imagemagick&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Using ImageMagick to merge multiple images into one PDF
&lt;/h2&gt;




&lt;p&gt;We will use the &lt;strong&gt;&lt;em&gt;convert&lt;/em&gt;&lt;/strong&gt; command line tool of ImageMagick to merge multiple images into a single PDF file.&lt;/p&gt;

&lt;p&gt;To convert use the following command:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;convert image1.jpg image2.png image3.bmp output.pdf&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The order of images in the command determines the order in which images are merged in the &lt;strong&gt;output.pdf&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you get the following error while converting to PDF:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;convert: attempt to perform an operation not allowed by the security policy 'PDF' @ error/constitute.c/IsCoderAuthorized/408&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Jump to Solving the Security Policy Error section where we have discussed how to solve this issue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using ImageMagick to merge multiple PDF into one PDF
&lt;/h2&gt;




&lt;p&gt;We will use similar command that we used before but with some extra options so that quality of the output.pdf is good.&lt;/p&gt;

&lt;p&gt;To convert use the following command:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;convert -density 300 file1.pdf file2.pdf file3.pdf output.pdf&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;-density&lt;/code&gt; sets the dpi that the PDF is rendered at. Setting this to 300/600 will give a fairly good output.&lt;/p&gt;

&lt;p&gt;You can also use image and pdf interchangeably in this command which makes it even more powerful.&lt;br&gt;
That is :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;convert file1.pdf image1.jpg output.pdf&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you get the following error while converting to PDF:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;convert: attempt to perform an operation not allowed by the security policy 'PDF' @ error/constitute.c/IsCoderAuthorized/408&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Jump into the next-section of this article to solve this error.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solving the Security Policy Error
&lt;/h2&gt;




&lt;p&gt;ImageMagick has some security policies disabling some rights for security reasons.&lt;br&gt;
You will have to edit a config file to re-enble the action you need.&lt;/p&gt;

&lt;p&gt;Open &lt;strong&gt;&lt;code&gt;/etc/ImageMagick-6/policy.xml&lt;/code&gt;&lt;/strong&gt; with your favorite text editor, find the line:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;policy domain="coder" rights="none" pattern="PDF" /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and replace &lt;em&gt;"none"&lt;/em&gt; by &lt;em&gt;"read|write"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Step By Step Process to achieve the things mentioned above:&lt;/p&gt;

&lt;p&gt;Open the file in terminal and execute:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;sudo nano /etc/ImageMagick-6/policy.xml&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Find and edit the line:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;policy domain="coder" rights="none" pattern="PDF" /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;policy domain="coder" rights="read|write" pattern="PDF" /&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://askubuntu.com/a/1127265" rel="noopener noreferrer"&gt;AskUbuntu&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After performing the task I would recommend to change the policy.xml back to what it was before. There are many other useful tasks that can be performed using &lt;code&gt;ImageMagick&lt;/code&gt; such as resizing images, converting between image formats and many more but that we would cover in some other article.&lt;/p&gt;

&lt;p&gt;I hope this article helped you to merge multiple PDF/images into one PDF in Ubuntu Linux.&lt;br&gt;
Questions, suggestions, a word of thanks is always encouraged.&lt;/p&gt;

</description>
      <category>bash</category>
      <category>ubuntu</category>
      <category>linux</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Installing Microsoft Fonts on Linux(Comprehensive Guide)</title>
      <dc:creator>Ashutosh Kumar</dc:creator>
      <pubDate>Sat, 26 Dec 2020 15:41:00 +0000</pubDate>
      <link>https://dev.to/blastoise/installing-microsoft-fonts-on-linux-comprehensive-guide-245k</link>
      <guid>https://dev.to/blastoise/installing-microsoft-fonts-on-linux-comprehensive-guide-245k</guid>
      <description>&lt;p&gt;After installing Linux, one of the most important thing to do is installing essential Microsoft Fonts that you will need while working with Microsoft Office Documents, Microsoft Teams, or on the web. It is important to do so as many times you won't be able to process the documents correctly when you try to open it with diffrent font sets.&lt;/p&gt;

&lt;p&gt;In this article we will cover how to install all the essential Microsoft Fonts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Microsoft Core TrueType Fonts on Ubuntu-based Linux distributions
&lt;/h2&gt;




&lt;p&gt;Microsoft Fonts doesn't come pre-installed in Linux. The reason behind it is that these fonts are not Open Source and are owned by Microsoft and many linux distributions don’t provide proprietary software by default to avoid licensing issue. But Microsoft has released its Core TrueType Fonts for free of charge.&lt;/p&gt;

&lt;p&gt;Since this is not an Open Source software, you need to first enable the &lt;strong&gt;multiverse repository&lt;/strong&gt;. To do so execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;add-apt-repository multiverse
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now to install Microsoft Core TrueType Fonts, execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;ttf-mscorefonts-installer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that press &lt;strong&gt;OK&lt;/strong&gt;(using ENTER button) when Microsoft’s End User agreement appears(use &lt;strong&gt;TAB&lt;/strong&gt; for moving the cursor to &lt;strong&gt;OK&lt;/strong&gt; button).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqvlxapqjpqcb6woui5bu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqvlxapqjpqcb6woui5bu.jpg" alt="Alt Text" width="723" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then press &lt;strong&gt;Yes&lt;/strong&gt; to accept the Microsoft’s agreement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0eb7mmlosq10jaohjbtb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0eb7mmlosq10jaohjbtb.png" alt="Alt Text" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In case that you accidentally reject the license agreement, you can reinstall the installer with the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; –reinstall ttf-mscorefonts-installer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This package installs the following fonts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Andale Mono&lt;/li&gt;
&lt;li&gt;Arial Black&lt;/li&gt;
&lt;li&gt;Arial (Bold, Italic, Bold Italic)&lt;/li&gt;
&lt;li&gt;Comic Sans MS (Bold)&lt;/li&gt;
&lt;li&gt;Courier New (Bold, Italic, Bold Italic)&lt;/li&gt;
&lt;li&gt;Georgia (Bold, Italic, Bold Italic)&lt;/li&gt;
&lt;li&gt;Impact&lt;/li&gt;
&lt;li&gt;Times New Roman (Bold, Italic, Bold Italic)&lt;/li&gt;
&lt;li&gt;Trebuchet (Bold, Italic, Bold Italic)&lt;/li&gt;
&lt;li&gt;Verdana (Bold, Italic, Bold Italic)&lt;/li&gt;
&lt;li&gt;Webdings&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installing Microsoft ClearType Fonts
&lt;/h2&gt;




&lt;p&gt;Microsoft ClearType Fonts was first introduced in Windows Vista and in Office 2007 and since then it has been a part of Windows and thus is very essential when working with Microsoft Documents. The ClearType Fonts Collection includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Calibri&lt;/li&gt;
&lt;li&gt;Cambria&lt;/li&gt;
&lt;li&gt;Candara&lt;/li&gt;
&lt;li&gt;Consolas&lt;/li&gt;
&lt;li&gt;Constantia&lt;/li&gt;
&lt;li&gt;Corbel&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To install ClearType Fonts, execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="nt"&gt;-O&lt;/span&gt; - https://gist.githubusercontent.com/Blastoise/72e10b8af5ca359772ee64b6dba33c91/raw/2d7ab3caa27faa61beca9fbf7d3aca6ce9a25916/clearType.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Installing Tahoma and Segoe-UI Fonts
&lt;/h2&gt;




&lt;p&gt;Tahoma is a part of TrueType Fonts by Microsoft but is not available in &lt;strong&gt;ttf-mscorefonts-installer&lt;/strong&gt; package and thus need to be installed manually.&lt;/p&gt;

&lt;p&gt;To install Tahoma Fonts, execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="nt"&gt;-O&lt;/span&gt; - https://gist.githubusercontent.com/Blastoise/b74e06f739610c4a867cf94b27637a56/raw/96926e732a38d3da860624114990121d71c08ea1/tahoma.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Segoe UI font is probably one of the most important font that we will install in this blog. This font is now used by Microsoft in every project and thus can be regarded as the font that will become a standard very soon.&lt;/p&gt;

&lt;p&gt;To install Segoe-UI Fonts, execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="nt"&gt;-O&lt;/span&gt; - https://gist.githubusercontent.com/Blastoise/64ba4acc55047a53b680c1b3072dd985/raw/6bdf69384da4783cc6dafcb51d281cb3ddcb7ca0/segoeUI.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Installing Other Essential Fonts
&lt;/h2&gt;




&lt;p&gt;This section deals with installing essential fonts that you will require when opening documents containing Maths symbols and thus is used for correct processing of these characters.&lt;br&gt;
We will install the following fonts in this section:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mtextra.ttf&lt;/li&gt;
&lt;li&gt;symbol.ttf&lt;/li&gt;
&lt;li&gt;webdings.ttf&lt;/li&gt;
&lt;li&gt;wingding.ttf&lt;/li&gt;
&lt;li&gt;wingdng2.ttf&lt;/li&gt;
&lt;li&gt;wingdng3.ttf&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To install these fonts, execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wget &lt;span class="nt"&gt;-q&lt;/span&gt; &lt;span class="nt"&gt;-O&lt;/span&gt; - https://gist.githubusercontent.com/Blastoise/d959d3196fb3937b36969013d96740e0/raw/429d8882b7c34e5dbd7b9cbc9d0079de5bd9e3aa/otherFonts.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  References:
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://itsfoss.com/install-microsoft-fonts-ubuntu/" rel="noopener noreferrer"&gt;It's FOSS&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Fun Fact:
&lt;/h4&gt;

&lt;p&gt;After installing Segoe-UI fonts this page will look different on many systems as it uses Segoe-UI font.&lt;/p&gt;

&lt;p&gt;We come to an end of this comprehensive guide of installing Microsoft Fonts. I hope this article helped you in doing so.&lt;/p&gt;

&lt;p&gt;Questions, suggestions, a word of thanks is always encouraged.&lt;/p&gt;

</description>
      <category>ubuntu</category>
      <category>linux</category>
      <category>bash</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
