<?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: Gian Franco Siares</title>
    <description>The latest articles on DEV Community by Gian Franco Siares (@siaresgf).</description>
    <link>https://dev.to/siaresgf</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%2F356392%2F75b0c3dc-fa9a-4e74-b383-cf3ab1183f20.jpg</url>
      <title>DEV Community: Gian Franco Siares</title>
      <link>https://dev.to/siaresgf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/siaresgf"/>
    <language>en</language>
    <item>
      <title>How to reduce EC2 Data Transfer using ECC certificates into AWS</title>
      <dc:creator>Gian Franco Siares</dc:creator>
      <pubDate>Thu, 11 Jun 2020 22:25:25 +0000</pubDate>
      <link>https://dev.to/siaresgf/how-to-reduce-ec2-data-transfer-using-ecc-certificates-into-aws-56h8</link>
      <guid>https://dev.to/siaresgf/how-to-reduce-ec2-data-transfer-using-ecc-certificates-into-aws-56h8</guid>
      <description>&lt;h1&gt;
  
  
  What is ECC?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--X9qiYlHg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f908wg85m5j10ky4p78p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X9qiYlHg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f908wg85m5j10ky4p78p.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
The ECC’s main advantage is that you can have the smaller key size for the same level of security, in particular at high levels of security AES-256 ~ ECC-512 ~ RSA-15424 (algorithms for factoring, like the Number Field Sieve).



&lt;p&gt;ECC is the latest encryption method. It stands for &lt;strong&gt;Elliptic Curve Cryptography&lt;/strong&gt; and promises stronger security, increased performance, yet shorter key lengths. This makes it ideal for the increasingly mobile world.&lt;/p&gt;




&lt;h1&gt;
  
  
  How to reduce 20% Data Transfer in EC2 step by step and not die trying
&lt;/h1&gt;




&lt;p&gt;Install Certbot:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oLJbcr6G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/9054353648/original/nRieU8nUOqUfBca0A_sLEwlTbMhN9B4xog.png%3F1528814970" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oLJbcr6G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/9054353648/original/nRieU8nUOqUfBca0A_sLEwlTbMhN9B4xog.png%3F1528814970" alt="Alt text of image"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://certbot.eff.org/"&gt;Certbot&lt;/a&gt; is a fully-featured, extensible client for the Let’s Encrypt CA (or any other CA that speaks the ACME protocol) that can automate the tasks of obtaining certificates and configuring webservers to use them. This client runs on Unix-based operating systems.&lt;/p&gt;



&lt;p&gt;First, go to measure the size of our RSA Certificate with the following command:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4rbKtYIp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5s48gy36b377bpm7ewoo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4rbKtYIp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/5s48gy36b377bpm7ewoo.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h4&gt;
  
  
  Step 1: generate ECC key
&lt;/h4&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;ecc
&lt;span class="nb"&gt;cd &lt;/span&gt;ecc
openssl ecparam &lt;span class="nt"&gt;-name&lt;/span&gt; prime256v1 &lt;span class="nt"&gt;-genkey&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; key
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Step 2: create a copy of OpenSSL config file
&lt;/h4&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; /etc/ssl/openssl.cnf domains.cnf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Step 3: editing config file
&lt;/h4&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;nano domains.cnf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Look for [ req ] section. Find add uncomment following line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;req_extensions &lt;span class="o"&gt;=&lt;/span&gt; v3_req
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;If you don’t find a line like above, you can add one.&lt;br&gt;
In &lt;code&gt;[ v3_req ]&lt;/code&gt; section, add following line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;subjectAltName &lt;span class="o"&gt;=&lt;/span&gt; @alt_names
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;It will look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt; v3_req &lt;span class="o"&gt;]&lt;/span&gt;

&lt;span class="c"&gt;# Extensions to add to a certificate request&lt;/span&gt;

basicConstraints &lt;span class="o"&gt;=&lt;/span&gt; CA:FALSE
keyUsage &lt;span class="o"&gt;=&lt;/span&gt; nonRepudiation, digitalSignature, keyEncipherment
subjectAltName &lt;span class="o"&gt;=&lt;/span&gt; @alt_names
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Finally add a new section called &lt;code&gt;[ alt_names ]&lt;/code&gt; towards end of file listing all domain variation you are planning to use.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt; alt_names &lt;span class="o"&gt;]&lt;/span&gt;
DNS.1 &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;.example.com
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now you have your OpenSSL config file ready.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 4: generate Certificate Signing Request
&lt;/h4&gt;

&lt;p&gt;Next, we will generate CSR using private key above AND site-specific copy of OpenSSL config file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;openssl req &lt;span class="nt"&gt;-new&lt;/span&gt; &lt;span class="nt"&gt;-sha256&lt;/span&gt; &lt;span class="nt"&gt;-key&lt;/span&gt; key &lt;span class="nt"&gt;-out&lt;/span&gt; csr &lt;span class="nt"&gt;-config&lt;/span&gt; domains.cnf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h4&gt;
  
  
  Step 5: use Certbot to deploying Let’s Encrypt certificates.
&lt;/h4&gt;



&lt;div class="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;--manual&lt;/span&gt; &lt;span class="nt"&gt;--key&lt;/span&gt; key &lt;span class="nt"&gt;--csr&lt;/span&gt; csr &lt;span class="nt"&gt;--preferred-challenges&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;dns &lt;span class="nt"&gt;--register-unsafely-without-email&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;.example.com
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;and it looks like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bhcz8kyH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b51pmz1vtyk3cwcb7vsb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bhcz8kyH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/b51pmz1vtyk3cwcb7vsb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
   Step 6: SSL Challenge
&lt;/h4&gt;

&lt;p&gt;Now, go to Route 53, and find the Hosted Zone “application”. And then paste the value as TXT record:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5sfCYNUE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/81s025a9x3e9evptlkaw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5sfCYNUE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/81s025a9x3e9evptlkaw.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, they will see something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yWX35FjD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/v03tni5vk0zkn2mqe9po.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yWX35FjD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/v03tni5vk0zkn2mqe9po.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next step is to convert the key into a .pem:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;openssl ec &lt;span class="nt"&gt;-in&lt;/span&gt; key &lt;span class="nt"&gt;-out&lt;/span&gt; key.pem
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;They should have this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9T3R6W-8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wihhzlrvn0ui25i1r4wl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9T3R6W-8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wihhzlrvn0ui25i1r4wl.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, go to &lt;a href="https://console.aws.amazon.com/console/home"&gt;AWS Console&lt;/a&gt; =&amp;gt; &lt;a href="https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#LoadBalancers:sort=loadBalancerName"&gt;Load Balancers&lt;/a&gt; =&amp;gt; Listeners =&amp;gt; Upload a certificate to IAM.&lt;/p&gt;

&lt;p&gt;Paste the following keys:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ho9z5HE0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wye2h95adenvsroxy09p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ho9z5HE0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wye2h95adenvsroxy09p.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click to save and Enjoy!&lt;/p&gt;




&lt;p&gt;Finally, we can check the size of ECC Certificate with the following command:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8LZe5x-s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7o3tgthfx24mxdyg3rkp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8LZe5x-s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/7o3tgthfx24mxdyg3rkp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
SSL Certificate has been reduced 56%



</description>
      <category>aws</category>
      <category>ecc</category>
      <category>datatransfer</category>
      <category>ssl</category>
    </item>
  </channel>
</rss>
