獲取證書vue
#獲取證書生成工具 wget https://dl.eff.org/certbot-auto #安裝軟件 chmod a+x certbot-auto #獲取證書 -d 能夠有多個 *.test.com 只能匹配 子域名和www開頭,因此在加一個主域名不帶www的 如(test.com) ./certbot-auto certonly -d *.test.com -d test.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory
**上面的命令會給出三個的提示仔細看:
是否贊成 Let's Encrypt 協議要求
詢問是否對域名和機器(IP)進行綁定
輸入郵箱,給你發送一封驗證郵件
確認贊成才能繼續。**node
Please deploy a DNS TXT record under the name _acme-challenge.test.com with the following value: 2_8KBE_jXH8nYZ2unEViIbW52LhIqxkg6i9mcwsRvhQ Before continuing, verify the record is deployed.
Press Enter to Continue
Waiting for verification...
Cleaning up challenges
意思是:求給 _acme-challenge.test.com 配置一條 TXT 記錄,在沒有確認 TXT 記錄生效以前不要回車執行。
這個須要本身配置
配置成功了之後,等30秒在按回車,(保證解析的正確)
確認生效後,回車執行
恭喜您,證書申請成功,證書和密鑰保存在下列目錄:
/etc/letsencrypt/archive/test.comnginx
下面配置Nginx Nginx 安裝我就不教了
打開nginx.conf文件spring
# spring boot 項目的 https的配置 server { listen 443 ssl; # 監聽端口 server_name ifsaid.com www.ifsaid.com; # 域名配置,能夠多個 ssl_certificate /etc/letsencrypt/live/ifsaid.com/fullchain.pem; # 證書地址 ssl_certificate_key /etc/letsencrypt/live/ifsaid.com/privkey.pem; # 證書地址 # 固定寫法------------- ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; # 這裏配置反向代理的項目 location / { proxy_pass http://127.0.0.1:8090; # spring boot 項目的端口號 # 固定寫法------------- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; } } # spring boot 項目的 http的配置 強制轉發到https端口 server { listen 80; server_name ifsaid.com www.ifsaid.com; #這是老版本的Nginx轉發 #rewrite ^(.*) https://$server_name$1 permanent; #這是新版本的Nginx轉發 return 301 https://$server_name$request_uri; # 固定寫法------------- tcp_nodelay on; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # vue 項目的 https的配置 server { listen 443 ssl; server_name admin.ifsaid.com; ssl_certificate /etc/letsencrypt/live/ifsaid.com/fullchain.pem; #同上 固然也能夠知道另外一個證書 ssl_certificate_key /etc/letsencrypt/live/ifsaid.com/privkey.pem; #同上 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; location / { root /home/nginx/admin; # vue.js 打包目錄 #固定寫法就能夠了 index index.html index.htm; try_files $uri $uri/ /index.html; } } # vue 項目的 http的配置 強制轉發到https端口 server { listen 80; server_name admin.ifsaid.com; #除了二級域名能夠改變,其餘均可以不變 #rewrite ^(.*) https://$server_name$1 permanent; return 301 https://$server_name$request_uri; tcp_nodelay on; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 而後 Nginx 中止: /usr/local/nginx/sbin/nginx -s quit 啓動 /usr/local/nginx/sbin/nginx
啓動在 docker中啓動 spring bootdocker
命令 docker run -p 8090:8090 -t springboot/spring-boot-docker
能夠看到證書已經生效了centos
在看子域名的 admin.ifsaid.comapi
至此 Nginx 域名和二級域名都是https 了 spring boot 和 vue.js 都實現了springboot