# Issue Certificate at Let's Encrypt
Introduce how to issue certificate for encrypting server as ssl.
It is based on `Ubuntu 19.04`.
## Install Let's Encrypt
```bash
git clone https://github.com/letsencrypt/letsencrypt
./letsencrypt-auto --help
./letsencrypt-auto certonly --manual
```
If you try to acme-challenge and use nginx in server, you must change Nginx configure.
Because it try to access `.well-known/acme-challenge`.
But, Nginx denies to directory name or file name containing .(dot).
So, change Nginx configure.
## acme-challenge
After execute command `./letsencrypt-auto certonly --manual`, set nginx config.
Here is sample config for nginx.
```
server {
server_name [domain];
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location ~ /\.well-known {
#allow all;
root /var/www/letsencrypt;
}
location / {
try_files $uri $uri/ =404;
}
}
```
Nginx restart using execute `service nginx restart` or `service nginx reload`.
Next, make a folder `.well-known/acme-challenge` and make acme-challenge file conatains contents.
In sample case, acme-challenge is `/var/www/letsencrypt/.well-known/acme-challenge/~~~`.
Finally you can get certificates for your server at `/etc/letsencrypt/live/[domain]/*.pem`.
## HTTP2 on SSL in Nginx
```
server{
server_name [domain];
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server ipv6only=on;
ssl_certificate /etc/letsencrypt/live/[domain]/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/[domain]/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/[domain]/fullchain.pem;
root /var/www/html;
location / {
try_files $uri $uri/ =404;
}
}
```
Nginx restart using execute `service nginx restart` or `service nginx reload`.
Now, you can access your server as `https`.
## Resource
http://blog.kimgihong.com/devlog/AWS_EC2_letsencrypt_SSL