搭建本地 HTTPS 环境
前言
之前寫自己的網站時, 申請過免費的https證書. 最近想在自己本地搭一個, 結果忘了當初證書是怎么來的了. 本來想著去申請個免費的證書, 但想了想, 我只需要在自己本地能使用就行了, 我自己的環境, 那當然是我說了算了. 只要能夠將證書構造出來, 安裝到本地就可以識別了. 搜了搜, 發現還真的有生成證書的工具. 道理咱都懂, 動手才是王道, 走你.
證書生成
以下以我自己的域名hujingnb.cn為例.
隨便找個路徑, 創建?hujingnb.conf配置文件, 內容如下(內容加了注釋, 請自行將注釋刪掉):
[ req ]default_bits = 2048 default_keyfile = server-key.pem // 標識提示的標簽名, 就是下面的 [subject] distinguished_name = subject // 指定擴展的標簽名 req_extensions = req_ext x509_extensions = x509_ext // 指定編碼 string_mask = utf8only[ subject ] // 以下為填寫的相關信息 countryName = 國家(跳過即可) countryName_default = CHstateOrProvinceName = 省份(跳過即可) stateOrProvinceName_default = BeiJinglocalityName = 城市(跳過即可) localityName_default = BeiJingorganizationName = 組織(跳過即可) organizationName_default = NonecommonName = 域名(必填) commonName_default = hujingnb.cnemailAddress = 郵箱(跳過即可) emailAddress_default = hujingnb@qq.com[ x509_ext ]// 使用者密鑰標識 subjectKeyIdentifier = hash // 授權密鑰標識 authorityKeyIdentifier = keyid,issuer// 表示要生成的證書是用于終端證書的, TRUE 為 CA 證書, 可下發二級證書 basicConstraints = CA:FALSE // 指明證書用途 keyUsage = digitalSignature, keyEncipherment // 標明當前證書使用與哪些域名, 在下面的 alternate_names 標簽中 subjectAltName = @alternate_names // 證書提交說明 nsComment = "generate crt"[ req_ext ]subjectKeyIdentifier = hashbasicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment subjectAltName = @alternate_names nsComment = "generate crt"[ alternate_names ] // 證書可使用的域名列表 DNS.1 = hujingnb.cn DNS.2 = *.hujingnb.cn// 還有寫其他的參數, 可查看 openssl.cnf 配置文件然后執行命令:
openssl req -config hujingnb.conf -new -sha256 -newkey rsa:2048 -nodes -keyout hujingnb.key -x509 -days 365 -out hujingnb.crt
提示需要輸入一堆參數, 都可以不給. 但是, Common Name 需要指定域名
對以上用到的參數簡單解釋:
- config: 指明配置文件
- new: 指明生成新的證書
- newkey: 生成新的密鑰, 方式為 rsa. 長度為2048
- nodes: 指定密鑰不用加密(沒懂是什么意思, 但是不指定不能生成證書).
- keyout: 私鑰輸出文件
- days: 標明證書有效期
- X509: 表示輸出證書的格式, 這個我們在配置文件中配過了. (默認是 crt 格式, 我試了, 不加這個參數也 OK)
- out: 證書輸出文件
生成證書文件以及私鑰.
然后將證書以及私鑰 copy 到你想要的任意位置,
證書安裝
雙擊crt證書文件.
雙擊證書, 將證書設置為始終信任. 然后 X 調, 輸入密碼, 確認修改. 證書安裝完成.
修改 nginx 配置
OK, 證書的準備工作已經完成了, 現在剩下 nginx 的配置了. 將以下配置加到 nginx 配置文件中:
listen 443 ssl; server_name hujingnb.cn;ssl on; ssl_certificate /Users/hujing/dir/pem/hujingnb.crt; ssl_certificate_key /Users/hujing/dir/pem/hujingnb.key;請自行修改其中證書以及私鑰的文件位置.
萬事具備, 試驗:
OK, 完美.
總結
不過這樣安裝, 只能在本地環境訪問, 僅供測試使用.
對于在本地環境搭建HTTPS的開發來說, 不用費時費力的申請線上證書, 可模擬線上HTTPS請求. 足矣.
總結
以上是生活随笔為你收集整理的搭建本地 HTTPS 环境的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: java mysql读取多条数据_mye
- 下一篇: Deepin nginx lumen配置
