thanks a bunch @rg305 for your super fast responses!
i happen to watch this video now and i realized how simple it was if the initial nginx config file was correctly setup. The root cause of my troubles is that i had created a config file at /etc/nginx/conf.d/virtual.conf with some improper config while i had exact same one at /sites-available as shown in the video. I removed the virtual.conf file and reran the certbot cmd and voila! it all worked fine. i am now able to view my domain at https as well.
letsencrypt and you are awesome!!
if i dont donate to letsencrypt even after this, i am not human