āļŠāļģāļŦāļĢāļąāļāļāđāļēāļāļāļĩāđāļāļĢāļ°āļŠāļāļāđāļāļīāļāļāļąāđāļ SSL āđāļŦāđāļāļąāļ Nginx āđāļ Docker āļŠāļēāļĄāļēāļĢāļāđāļāđāđāļāđāļāļąāļāļāļĩāđ
1. āļāļģāļāļēāļĢāļŠāļĢāđāļēāļāđāļāļĨāđāļāļāļĢāđ āđāļāđāļConfig Nginx āđāļĨāļ° āđāļāļĨāđ SSL
- mkdir -p /root/nginx/ssl
* āļŠāļēāļĄāļēāļĢāļāđāļāļĨāļĩāđāļĒāļāļāļĩāđāļāļĒāļđāđāđāļāļĨāđāļāļāļĢāđ āđāļāđāļāļēāļĄāļāđāļāļāļāļēāļĢ
- āļāļģāļāļēāļĢāļāļąāļāđāļŦāļĨāļ private.key āđāļĨāļ° domain certificate + ca certificate āđāļāļĒāļąāļāđāļāļĨāđāļāļāļĢāđ
āđāļāļĒāļāļģāļāļēāļĢāļĢāļ§āļĄāđāļāļĨāđ āđāļŦāđāđāļĢāļĩāļĒāļāļĢāđāļāļĒ
- /root/nginx/ssl/domain_pack.crt # āđāļāļĨāđāļāļĩāđāđāļŦāđāļāļģ domain.crt āļĢāļ§āļĄāļāļąāļ CARootCertificate-ca.crt
- /root/nginx/ssl/private.key # āđāļāļĨāđ private key
2. āļāļģāļāļēāļĢāļĒāļāđāļĨāļīāļ Docker Contrainer āđāļāļīāļĄ āđāļĨāļ° āļĨāļāļāļāļ
- docker ps
āļāļģāļāļēāļĢāļāļĢāļ§āļāļŠāļāļ process āļĢāļēāļĒāļāļ·āđāļ docker
- docker stop nginx
āļŠāļąāđāļāļŦāļĒāļļāļāļāļģāļāļēāļ
- docker rm nginx
āļŠāļąāđāļāļĨāļ nginx container āđāļāļīāļĄ
āļŦāļēāļāļāļ error āļāļēāļĄāļāļąāļ§āļāļĒāđāļēāļ
docker: Error response from daemon: Conflict. The container name "/nginx" is already in use by container "2ba5829465a71f4b40b33317e5ad54e0814ec8a02a7f4ed3cb21eaac2fa56fc5". You have to remove (or rename) that container to be able to reust name.
āđāļŦāđāļŠāļąāđāļ docker rm2ba5829465a71f4b40b33317e5ad54e0814ec8a02a7f4ed3cb21eaac2fa56fc5
3. āđāļāļīāļāđāļāđāļāļēāļ SSL āļŠāļģāļŦāļĢāļąāļ Nginx āđāļāđāļāļĨāđ default.conf
āļāđāļēāļāļŠāļēāļĄāļēāļĢāļāļāļĢāļąāļāđāļāđ āļāļąāđāļāļāđāļē nginx config āđāļāđāļāļēāļĄāļāđāļāļāļāļēāļĢ
āļāļąāļ§āļāļĒāđāļēāļāļāļĩāđāļāļ°āđāļāđāļāļāļēāļĢāļāļģ reverse proxy āđāļāļĒāļąāļ service port āļāļ·āđāļāđ
server {
listen 80;
#server_name example.com *.example.com;
location / {
proxy_pass http://xxx.xxx.xxx.xxx:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 443 ssl;
#server_name example.com *.example.com;
ssl_certificate /etc/nginx/ssl/domain_pack.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;
location / {
proxy_pass http://xxx.xxx.xxx.xxx:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
4. āļŠāļąāđāļ Start Docker Service āđāļāļĒāļāļģāļāļēāļĢ Mount Volume āļāļąāļāļāļĩāđ
docker run -d --name nginx -p 80:80 -p 443:443 \
-v $(pwd)/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro \
-v $(pwd)/nginx/ssl/:/etc/nginx/ssl/:ro \
--restart=always nginx:1.21
- docker ps
āļāļģāļāļēāļĢāļāļĢāļ§āļāļŠāļāļ āļ§āđāļēāļŠāļēāļĄāļēāļĢāļāļĢāļąāļ service āđāļāđāļāļāļāļī
- āļāļāļŠāļāļāđāļĢāļĩāļĒāļāđāļ§āđāļāđāļāļāđāļāļāļāļāđāļēāļ
https://your-domain.com
āļŦāļēāļāļāđāļēāļāļāđāļāļāļāļēāļĢ verify http-file-base āļāđāļ§āļĒ nginx āļŠāļēāļĄāļēāļĢāļāđāļāļĩāļĒāļ config āļāļģāļŠāļąāđāļ
location "/.well-known/pki-validation/āļāļ·āđāļāđāļāđ.txt" {
default_type text/plain;
return 200 "467D710FAA6AF119Axxx...5DB1A18B754DBDC0A1\nsectigo.com";
}
āļ§āļīāļāļĩāļāļīāļāļāļąāđāļ SSL āđāļ nginx āļŠāļģāļŦāļĢāļąāļ Docker Compose ( docker-compose.yml )
web:
image: nginx:alpine
container_name: webserver
restart: unless-stopped
tty: true
ports:
- "80:80"
- "443:443"
volumes:
- ./docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf:ro
- ./docker/nginx/ssl:/etc/ssl/nginx:ro
- ./docker/public:/var/www/public:ro
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
environment:
- TZ=Asia/Bangkok
- docker compose down web
- docker compose up web -d
- docker compose exec web nginx -t
āđāļāđāļĢāļĩāļĒāļĨāļĨāļĩāđāđāļŪāļŠ
āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļāļąāļāļŠāļāļļāļ āđāļĨāļ°āļāđāļ§āļĒāđāļŦāļĨāļ·āļ
http://www.ireallyhost.com/support
āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļŠāļāļąāļāļŠāļāļļāļ āđāļĨāļ°āļāđāļ§āļĒāđāļŦāļĨāļ·āļ
http://www.ireallyhost.com/support
āļāđāļāļāļģāļŦāļāļāđāļāļāļēāļĢāđāļāļĒāđāļāļĢāđāļāļāļāļ§āļēāļĄ āļāđāļēāļ§āļŠāļēāļĢ
** āļāļāļāļ§āļēāļĄāļāļĩāđāļĄāļĩāļĨāļīāļāļŠāļīāļāļāļīāđ āđāļĄāđāļāļāļļāļāļēāļāļīāđāļŦāđāļāļąāļāļĨāļāļ āļāļģāļāđāļģ āļāļąāļāđāļāļĨāļāļāđāļāļāđāļāđāļĢāļąāļāļāļāļļāļāļēāļ **
āđāļāļĢāļāļĢāļ°āļāļļāđāļŦāļĨāđāļāļāļĩāđāļĄāļē āļāļĢāļīāļĐāļąāļ āđāļāđāļāļāđāļāļĢāđāļē āļāļāļĢāđāļāļāđāļĢāļāļąāđāļ āļāļģāļāļąāļ / https://www.ireallyhost.com
** āļāļāļāļ§āļēāļĄāļāļĩāđāļĄāļĩāļĨāļīāļāļŠāļīāļāļāļīāđ āđāļĄāđāļāļāļļāļāļēāļāļīāđāļŦāđāļāļąāļāļĨāļāļ āļāļģāļāđāļģ āļāļąāļāđāļāļĨāļāļāđāļāļāđāļāđāļĢāļąāļāļāļāļļāļāļēāļ **
āđāļāļĢāļāļĢāļ°āļāļļāđāļŦāļĨāđāļāļāļĩāđāļĄāļē āļāļĢāļīāļĐāļąāļ āđāļāđāļāļāđāļāļĢāđāļē āļāļāļĢāđāļāļāđāļĢāļāļąāđāļ āļāļģāļāļąāļ / https://www.ireallyhost.com
āļāļąāđāļ§āđāļ
āļāļđāđāļĄāļ·āļ / āļ§āļīāļāļĩāļāļēāļĢāļāļīāļāļāļąāđāļ SSL Certificate āļŠāļģāļŦāļĢāļąāļ cPanel Web Control Panel
āļāļĢāļīāļāļēāļĢ SSL Certificate - āđāļāļĒāđāļāđāļĢāļĩāļĒāļĨāļĨāļĩāđāđāļŪāļŠ