自己的SSL證書簽發(fā)工具

又到了自己造輪子的季節(jié)。


現(xiàn)在部署網(wǎng)站都要上https了吧,不過去購買授權(quán)的SSL證書太貴。一年基本要好一兩千。而且如果要上通配符的形式的話,價格就更貴了。如果只是自己部署的工具站點的話,完全沒有必要。
當(dāng)然,現(xiàn)有有一些提供了免費的SSL證書的網(wǎng)站,比如Let’s Encrypt - Free SSL/TLS Certificates。不過,這個工具使用是貌似需要服務(wù)器能夠從外網(wǎng)訪問,而且需要經(jīng)常性的更新。(第一個問題比較致命,我的服務(wù)器是放在學(xué)校的教育網(wǎng)的,學(xué)校封鎖了外部進入的流量,導(dǎo)致Let's Encrypt沒法用)。
因此我這次自己做了一個輪子,可以方便的生成自己的證書系統(tǒng)。雖然想要拿去做公開站點比較麻煩(主要是瀏覽器會WARNING),但是用于自己用的工具站點來說還是相當(dāng)夠用的。
工程地址在GitHub - huangy10/quick-ca-signer: Tool to create your own ssl certificate。

安裝方法

將工程clone下來,然后進入工程目錄,運行

sudo su
apt-get update
apt-get install openssl
./install.sh -l

簡單使用場景

假設(shè)你需要為域名youdomain.com上https,那么順序執(zhí)行下面的指令就可以了

$ woodyssl -c -subj "/C=CN/ST=Beijing/L=Beijing/O=Tsinghua/CN=Vlion Club"
$ woodyssl -c -d yourdomain.com
$ woodyssl -l
yourdomain.com
$ woodyssl -d yourdomain.com -e path/to/export/certficates

第一行命令會創(chuàng)建你自己的根證書。并且記錄一些描述性的信息,"/C=CN/ST=Beijing/L=Beijing/O=Tsinghua/CN=Vlion Club"中,/C代表國家,/ST代表省份,/L代表城市,/O代表組織名稱,/CN達標(biāo)常用名。你可以替換成你需要的值。程序會將證書相關(guān)內(nèi)容放在~/.woodyssl下。
第二行命令會為域名創(chuàng)建證書
第三行命令列出現(xiàn)在創(chuàng)建了證書的域名
第四行將站點證書導(dǎo)出到一個文件夾中。之后你就可以在nginx中使用這些證書了。
(更多的命令運行woodyssl -h查看吧)

將根證書加入本機的信任列表來關(guān)閉瀏覽器的警告信息

先在主流的瀏覽器對于非權(quán)威機構(gòu)的根證書都會彈出警告,部分甚至?xí)褂脩粼L問(某果的某Safari)。為了避免這些問題你需要將根證書加入本機的信任列表。
使用下面的命令導(dǎo)出根證書

$ woodyssl -e path/to/export/root-ca

導(dǎo)出的文件包含root-ca.crtroot-ca.key,其中前者是證書文件,后者是秘鑰。具體的本機添加新任列表請讀者自行GOOGLE一下,這里就不贅述了。

補充

這里給出一個nginx的https配置參考

server {
        listen 80;

        server_name yourdomain.com;
        error_log /absolute/path/to/error.log;
        access_log /absolute/path/to/access.log;
        location / {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://localhost:8080;
        }

        client_max_body_size 50m;
  
        listen 443 ssl;
        # SSL
        ssl_certificate /path/to/yourdomain.com.crt;
        ssl_certificate_key /path/to/yourdomain.key;

        # Recommendations from https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
        ssl_protocols TLSv1.1 TLSv1.2;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;

        chunked_transfer_encoding on;

        if ($scheme != "https") {
            return 301 https://$host$request_uri;
        }
} 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評論 19 139
  • 其實,我對https以前只有一個大概的了解,最近工作中遇到一個問題從而將https協(xié)議做了一個徹底的學(xué)習(xí)和認(rèn)知,下...
    一條魚的星辰大海閱讀 3,546評論 0 1
  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb閱讀 3,696評論 0 13
  • 一、作用 不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文傳播,帶來了三大風(fēng)險。 (1)竊聽風(fēng)險...
    XLsn0w閱讀 11,062評論 2 44
  • Helen Dardik出生于黑海邊的敖德薩(烏克蘭的港口城市),成長在西伯利亞,在以色列的藝術(shù)學(xué)校里完成了學(xué)業(yè)。...
    旭zx閱讀 735評論 0 0

友情鏈接更多精彩內(nèi)容