自簽名證書

在本地開發環境中,常經過配置host來使用域名,那麼怎麼使用https呢,https須要證書支持,而證書須要ca機構來發布,那怎麼在本地實現一個證書呢?html

安裝openssl

$brew install openssl

執行之前命令

sudo openssl req \
  -x509 \
  -nodes \
  -days 365 \
  -newkey rsa:2048 \
  -keyout example.key \
  -out example.crt
  • req:處理證書籤署請求。
  • -x509:生成自簽名證書。
  • -nodes:跳過爲證書設置密碼的階段,這樣 Nginx 才能夠直接打開證書。
  • -days 365:證書有效期爲一年。
  • -newkey rsa:2048:生成一個新的私鑰,採用的算法是2048位的 RSA。
  • -keyout:新生成的私鑰文件爲當前目錄下的example.key。
  • -out:新生成的證書文件爲當前目錄下的example.crt。

依次回答各個問題

其中最重要的一個問題是 Common Name,正常狀況下應該填入一個域名,這裏能夠填 127.0.0.2node

生成證書文件

當前目錄下出現example.key和example.crt兩個文件nginx

將證書文件放到指定目錄

$ mkdir conf/certs
$ mv example.crt example.key conf/certs

nginx https證書配置

$vim conf/conf.d/default.conf

server {
    listen 443 ssl;
    server_name  localhost;

    ssl                      on;
    ssl_certificate          /etc/nginx/certs/example.crt;
    ssl_certificate_key      /etc/nginx/certs/example.key;

    ssl_session_timeout  5m;

    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}
相關文章
相關標籤/搜索