阿里雲或linux伺服器配置https及使用nginx啟用https並執行springboot jar包
-
首先需要伺服器和一個可連外網的域名。
-
在阿里雲後臺申請ssl證書,為域名配置證書並下載for nginx證書檔案儲存好,後面會用。參考:https://jingyan.baidu.com/article/a3aad71aeceea0b1fb00969c.html
-
在伺服器中安裝nginx,安裝時不指定安裝目錄,則預設安裝在/usr/*的相關子目錄下,安裝nginx時注意命令./configure可能會有問題,用./configure --with-http_ssl_module,不要直接用./configure 就可以了。參考:https://www.cnblogs.com/wyd168/p/6636529.html。
安裝完成後啟動nginx可能遇到libpcre.so檔案找不到的問題,錯誤資訊為:
error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
,需要為檔案建立符號連結,參考:https://blog.csdn.net/guodongxiaren/article/details/40950249 。再次啟動nginx,可能遇到端口占用問題,
nginx: [emerg] bind() to 0.0.0.0:* failed (98: Address already in use)
ps -ef|grep nginx
// 殺死程序 kill -QUIT 28286 // 啟動nginx /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
-
配置nginx配置檔案,參考:https://www.jianshu.com/p/d785ac81b0b4
啟動時遇到nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/*..
錯誤:參考 https://www.jianshu.com/p/a2bd2c82ce3d
修改後再次啟動,遇到錯誤
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
檢視443埠,發現被httpd佔用,結束之:service httpd stop
再次啟動,成功。 -
在伺服器中執行打包好的springboot工程,工程配置及打包部署過程參考:https://www.jianshu.com/p/d785ac81b0b4 ,注意在工程的application.yml檔案中設定埠號,和nginx監聽埠對應,也可在啟動工程時指定埠號,例如:
java -jar demo.jar --server.port=3000
。
(如果在本地執行測試工程,可直接在工程中配置https,見:https://www.cnblogs.com/lianggp/p/8136540.html )