『壹』 openssl 生成ssl證書 能不能用
用openssl生成的ssl證書也叫自簽名ssl證書,這種證書不建議使用,因為有很多弊端:
第一、被「有心者」利用。
其實「有心者」指的就是黑客。自簽名SSL證書你自己可以簽發,那麼同樣別人也可以簽發。黑客正好利用其隨意簽發性,分分鍾就能偽造出一張一模一樣的自簽證書來安裝在釣魚網站上,讓訪客們分不清孰真孰假。
第二、瀏覽器會彈出警告,易遭受攻擊
前面有提到自簽名SSL證書是不受瀏覽器信任的,即使網站安裝了自簽名SSL證書,當用戶訪問時瀏覽器還是會持續彈出警告,讓用戶體驗度大大降低。因它不是由CA進行驗證簽發的,所以CA是無法識別簽名者並且不會信任它,因此私鑰也形同虛設,網站的安全性會大大降低,從而給攻擊者可乘之機。
第三、安裝容易,吊銷難
自簽名SSL證書是沒有可訪問的吊銷列表的,所以它不具備讓瀏覽器實時查驗證書的狀態,一旦證書丟失或者被盜而無法吊銷,就很有可能被用於非法用途從而讓用戶蒙受損失。同時,瀏覽器還會發出「吊銷列表不可用,是否繼續?」的警告,不僅降低了網頁的瀏覽速度,還大大降低了訪問者對網站的信任度。
第四、超長有效期,時間越長越容易被破解
自簽名SSL證書的有效期特別長,短則幾年,長則幾十年,想簽發多少年就多少年。而由受信任的CA機構簽發的SSL證書有效期不會超過2年,因為時間越長,就越有可能被黑客破解。所以超長有效期是它的一個弊端。
『貳』 如何創建一個自簽名的SSL證書
創建自簽名不會被瀏覽器信任,當然起不到SSL證書真正的加密,很隨意的被模仿或復制。
建議您淘寶:Gworg 獲取可信SSL證書。
創建自簽名證書的步驟
注意:以下步驟僅用於配置內部使用或測試需要的SSL證書。
第1步:生成私鑰
使用openssl工具生成一個RSA私鑰
$ openssl genrsa -des3 -out server.key 2048
說明:生成rsa私鑰,des3演算法,2048位強度,server.key是秘鑰文件名。
注意:生成私鑰,需要提供一個至少4位的密碼。
第2步:生成CSR(證書簽名請求)
生成私鑰之後,便可以創建csr文件了。
此時可以有兩種選擇。理想情況下,可以將證書發送給證書頒發機構(CA),CA驗證過請求者的身份之後,會出具簽名證書(很貴)。另外,如果只是內部或者測試需求,也可以使用OpenSSL實現自簽名,具體操作如下:
$ openssl req -new -key server.key -out server.csr
說明:需要依次輸入國家,地區,城市,組織,組織單位,Common Name和Email。其中Common Name,可以寫自己的名字或者域名,如果要支持https,Common Name應該與域名保持一致,否則會引起瀏覽器警告。
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:joyios
Organizational Unit Name (eg, section) []:info technology
Common Name (e.g. server FQDN or YOUR name) []:demo.joyios.com
Email Address []:[email protected]
第3步:刪除私鑰中的密碼
在第1步創建私鑰的過程中,由於必須要指定一個密碼。而這個密碼會帶來一個副作用,那就是在每次Apache啟動Web伺服器時,都會要求輸入密碼,這顯然非常不方便。要刪除私鑰中的密碼,操作如下:
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
第4步:生成自簽名證書
如果你不想花錢讓CA簽名,或者只是測試SSL的具體實現。那麼,現在便可以著手生成一個自簽名的證書了。
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
說明:crt上有證書持有人的信息,持有人的公鑰,以及簽署者的簽名等信息。當用戶安裝了證書之後,便意味著信任了這份證書,同時擁有了其中的公鑰。證書上會說明用途,例如伺服器認證,客戶端認證,或者簽署其他證書。當系統收到一份新的證書的時候,證書會說明,是由誰簽署的。如果這個簽署者確實可以簽署其他證書,並且收到證書上的簽名和簽署者的公鑰可以對上的時候,系統就自動信任新的證書。
第5步:安裝私鑰和證書
將私鑰和證書文件復制到Apache的配置目錄下即可,在Mac 10.10系統中,復制到/etc/apache2/目錄中即可。
需要注意的是,在使用自簽名證書時,瀏覽器會提示證書不受信任,如果你是對外網站使用,建議還是去CA機構申請可信的SSL證書,現在證書也很便宜,Gworg SSL證書可以淘寶獲取。
『叄』 openssl 生成nginx永久ssl證書
1、SSL證書製作依靠openssl,首先檢查OpenSSL:一般centos7上默認裝好了
[root@zq testzq]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
2、生成私鑰和自簽名的SSL證書:
2.1、生成私鑰 ,參數genrsa:生成RSA私鑰;-des3:des3演算法;-out server.pass.key:生成的私鑰文件名;2048:私鑰長度
[root@zq testzq]# openssl genrsa -des3 -out server.pass.key 2048
Generating RSA private key, 2048 bit long molus
.............................................................+++
.......................+++
e is 65537 (0x10001)
Enter pass phrase for server.pass.key:
Verifying - Enter pass phrase for server.pass.key: #輸入一個4位以上的密碼
[root@zqtestzq]# ll
-rw-r--r-- 1 root root 1751 1月 20 11:01 server.pass.key #有密碼的私鑰文件
2.2、去除私鑰中的密碼
[root@zq testzq]# openssl rsa -in server.pass.key -out server.key
Enter pass phrase for server.pass.key:
writing RSA key
[root@zq testzq]# ll
-rw-r--r-- 1 root root 1679 1月 20 11:01 server.key #無密碼的私鑰文件
-rw-r--r-- 1 root root 1751 1月 20 11:01 server.pass.key #有密碼的私鑰文件
[root@zq testzq]# openssl genrsa -des3 -out server.pass.key 2048
Generating RSA private key, 2048 bit long molus
.............................................................+++
.......................+++
e is 65537 (0x10001)
Enter pass phrase for server.pass.key:
Verifying - Enter pass phrase for server.pass.key: #輸入一個4位以上的密碼
[root@zqtestzq]# ll
-rw-r--r-- 1 root root 1751 1月 20 11:01 server.pass.key #有密碼的私鑰文件
2.2、去除私鑰中的密碼
[root@zq testzq]# openssl rsa -in server.pass.key -out server.key
Enter pass phrase for server.pass.key:
writing RSA key
[root@zq testzq]# ll
-rw-r--r-- 1 root root 1679 1月 20 11:01 server.key #無密碼的私鑰文件
-rw-r--r-- 1 root root 1751 1月 20 11:01 server.pass.key #有密碼的私鑰文件
2.3、生成CSR(證書簽名請求文件)
[root@zq testzq]# openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Guangdong/L=Guangzhou/O=xdevops/OU=xdevops/CN=gitlab.xdevops.cn"
參數說明:# req 生成證書簽名請求
# -new 新生成
# -key 私鑰文件
# -out 生成的CSR文件
# -subj 生成CSR證書的參數
2.4、生成自簽名的SSL證書
[root@zq testzq]# openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt #-days:證書有限期(天)
Signature ok
subject=/C=CN/ST=Guangdong/L=Guangzhou/O=xdevops/OU=xdevops/CN=gitlab.xdevops.cn
Getting Private key
[root@zq testzq]# ll
-rw-r--r-- 1 root root 1241 1月 20 11:00 server.crt #自簽名的SSL證書
-rw-r--r-- 1 root root 1021 1月 20 11:00 server.csr #簽名文件
-rw-r--r-- 1 root root 1679 1月 20 11:01 server.key #無密碼的私鑰文件
-rw-r--r-- 1 root root 1751 1月 20 11:01 server.pass.key #有密碼的私鑰文件nginx
server {
listen 8443;
ssl on;
ssl_certificate /home/testzq/server.crt; #配置已簽名的SSL證書.crt
ssl_certificate_key /home/testzq/server.key; #配置已簽名的證書私鑰.key
.............................................
server {
listen 443;
ssl on;
ssl_certificate /home/testzq/server.crt;
ssl_certificate_key /home/testzq/server.key;
『肆』 openssl 生成ssl證書 能不能用
可以自己自用,但是面向全社會,是不行,因為根證書無法驗證你搞的自簽證書。推薦一個openssl
視頻教程,裡面有加密的使用,模擬CA簽發證書等,還講解了TLS/SSL協議的原理,以及在nginx等軟體上的部署調優。具體鏈接:網頁鏈接
『伍』 OpenSSL生成HTTPS自簽名證書
之前在Windows上有用Perl編譯過OpenSSL,不過只是要用它的兩個靜態庫,這次搭一個https server還要用它來生成自簽名證書,其中我的配置文件在openssl/apps/openssl.cnf,編譯後openssl.exe在openssl/out32/openssl.exe,編譯過程可以去網上查,資料還是挺多的。
OpenSSL默認載入配置文件路徑是 /usr/local/ssl/openssl.cnf ,因此在開始前需要先設定一下'OPENSSL_CONF'環境變數:
之後就可以根據自己的需求來生成密鑰和證書了,關於SSL/TLS原理此處也不多贅述,其中包含了多種非對稱加密、對稱加密演算法,下面將羅列生成CA、server、client三方證書的步驟,但對於只做單向鑒定的情況下client證書是不必要的。
過程都是相同的,先生成1024位的RSA私鑰,然後生成證書請求文件(.csr),csr文件經CA私鑰簽名後生成公鑰(即X.509證書),如果需要的話還可以再把它導出為其他格式比如PKCS#12證書(.p12)。
『陸』 用openssl 和 keytool 生成 SSL證書
SSL(Secure Sockets Layer (SSL) and Transport Layer Security (TLS))被設計為加強Web安全傳輸(HTTP/HTTPS/)的協議(事實上還有SMTP/NNTP等) ,默認使用443埠
openssl 適用范圍廣。
keytool 單獨針對 java application
數字證書是現代互聯網中個體間相互信任的基石。
如果沒有了數字證書,那麼也就沒有了各式各樣的電商平台以及方便的電子支付服務。目前我們所提到的數字證書都是基於 ITU 制定的 X.509 標准。
簡單來說,數字證書就是一張附帶了數字簽名的信息表。
x509證書一般會用到三類文件,key,csr,crt。
Key是私用密鑰,openssl格式,通常是rsa演算法。
csr是證書請求文件(certificate signing request),用於申請證書。在製作csr文件的時候,必須使用自己的私鑰來簽署申請,還可以設定一個密鑰。
crt是CA認證後的證書文件(certificate),簽署人用自己的key給你簽署的憑證。
CA根證書的生成步驟
生成CA私鑰(.key)-->生成CA證書請求(.csr)-->自簽名得到根證書(.crt)(CA給自已頒發的證書)。
本質上就是用私鑰去獲取證書,然後把這兩個文件一起放到server,以此來證明 我就是我 。
上面是互動式輸入,非交互的方式如下
自簽名是免費/測試的證書,瀏覽器默認不認可。
通常的方法是:提交CSR到證書公司(比如VeriSign,Inc),等對方發來證書。(當然這是要花錢的)
比如Nginx伺服器,把 ca.key 和 ca.crt 放到 /etc/nginx/certs 目錄。修改/etc/nginx/nginx.conf
重啟服務生效
引入一個概念:SAN
SAN stands for 「 Subject Alternative Names 」 and this helps you to have a single certificate for multiple CN (Common Name).
簡而言之,用SAN是為了省錢,一個證書給多個網址使用。如果用之前的交互方式來申請證書,根本沒有地方來輸入SAN,要解決這問題,需用到配置文件。
The entries in SAN certificate:
Create new Private Key and Certificate Signing Request
生成 private key 和 生成 CSR 合並成一步
例子
於是 ca.csr ca.key 都生成了,csr 用於申請證書。
Keytool 是一個Java數據證書的管理工具 , Keytool將密鑰(key)和證書(certificates)存在一個稱為keystore的文件中。
這是java專用方式,過程跟openssl 類似。
伺服器配置可以使用私鑰+證書合並在一起的文件,如jks或者pkcs12文件,這類文件一般叫key.keystore。(openssl使用兩個文件)
(openssl 自簽名參考上面)
測試階段,也可以用keytool 來實現自簽名(根據證書請求生成證書)。
用 jenkins 來舉例
查看單個證書
列出keystore存在的所有證書
使用別名查看keystore特定條目
刪除keystore裡面指定證書
更改keysore密碼
導出keystore裡面的指定證書
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html
『柒』 SSL證書怎麼安裝
生成CSR。在購買和安裝SSL證書之前,請先在伺服器上創建CSR文件。
『捌』 用openssl生成的ssl證書和付費的有什麼區別
用openssl生成的SSL證書即自簽名證書,存在安全隱患,而且不受瀏覽器信任。最好從正規第三方證書頒發機構去申請,還不用自己弄代碼那麼復雜,GDCA可以申請各類型SSL證書,免費付費的都有,看你需要。
『玖』 如何利用openssl為iis生成ssl伺服器證書
2.在要安加SSL服務的網站,右鍵打開網站屬性Table. 3.選取目錄安全中的伺服器證書. 4.進入生成伺服器證書請求的步驟中,一步步填寫相應的信息。每一步相應的信息要記住,這些信息在後面要用到。二、openssl操作: 1.生成私鑰。 openssl genrsa -des3 -out cakey.pem 2048 2.生成自簽名根證書. openssl req -new -x509 -key cakey.pem -out cacert.pem -days 1825
此處會要求輸入一些信息: Country Name: CN //兩個字母的國家代號 State or Province Name: guang dong //省份名稱 Locality Name: guang zhou //城市名稱 Organization Name: sunrising //公司名稱
Organizational Unit Name: home //部門名稱 Common Name: besunny //你的姓名(要是生成伺服器端的證書一定要輸入域名或者ip地址) 切記一定要和IIS伺服器上填寫的信息保持一致。 3.在你的openssl主目錄下的bin目錄下創建如下目錄: demoCA
demoCA/newcerts 在demoCA目錄下創建一個空的index.txt文件. 在demoCA目錄創建一個serial文件,文件內容為01 . 4.把第二步的生成的cakey.pem拷貝到 demoCA/private目錄下; 把cacert.pem 拷貝到demoCA目錄下. 5.用CA證書cacert.pem為IIS請求certreq.txt簽發證書。(將iis伺服器生成的certreq.txt存放在openssl/bin下面) openssl ca -in certreq.txt -out iis.cer 6.打開iis.cer,刪掉在"-- Begin Certificate --"的文本。 三.IIS伺服器操作: 在該網站屬性中目錄安全的伺服器證書 ,導入該證書。 四、測試是否SSL正常。 二、配置OpenSSL1、建立自己的CA證書在openssl的apps目錄下建立自己的CA證書,例如mageCAC:/openssl098b/apps>mkdir mageCA2、生成CA密鑰C:/openssl098b/apps>openssl genrsa -out mageCA/ca-key.pem 1024Genrsa[產生密鑰命令] –out[密鑰文件輸出路徑] 1024[密鑰位數]Loading 'screen' into random state - doneGenerating RSA private key, 1024 bit long molus..............................++++++......++++++3、生成待簽名的證書C:/openssl098b/apps>openssl req -new -out mageCA/ca-req.csr -key mageCA/ca-key.pemreq[產生證書命令]-new[新生成]-out[證書文件輸出路徑]-key[私鑰文件路徑]報錯:Using configuration from /usr/local/ssl/openssl.cnfUnable to load config infounable to find 'distinguished_name' in configproblems making Certificate Request2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:2188:error:0E06D06A:configurationfileroutines:NCONF_get_string:no conf or environment variable:./crypto/conf/conf_lib.c:344:出現這樣的問題後,打開了apps下的req查看DIAGNOSTICS: =head1 DIAGNOSTICSThe following messages are frequently asked about:? Using configuration from /some/path/openssl.cnf? Unable to load config infoThis is followed some time later by...? unable to find 'distinguished_name' in config? problems making Certificate RequestThe first error message is the clue: it can't find the configurationfile! Certain operations (like examining a certificate request) don'tneed a configurationfile so its use isn't enforced. Generation ofcertificates or requests however does need a configurationfile. Thiscould be regarded as a bug.依然不能解決問題,在網上搜索,被告知是環境變數沒有設置,於是設置系統用戶變數OPENSSL_CONF為C:/openssl098b/apps/openssl_cnf。重開一個命令行窗口,要求輸入一系列的信息,如國家、省、市、公司、部門、姓名、電子郵件等,命令執行完成。在設置了環境變數以後,一定要另開一個命令行窗口!一開始我就是沒有另開窗口,所以後來又耽誤了好多時間,不過,真是因為這個錯誤,我才搞清楚了openssl_cnf!至於openssl_cnf,笨笨的我還在apps下找了好半天,都沒有找到這個文件,後來被高手告知就是那個名為openssl的計算機圖標一樣的文件,是可以用寫字板打開的!狂暈!還有人說是在ssl目錄下,但是我的不是!
『拾』 什麼是自簽名SSL證書
自己生成的SSL證書,不是CA機構頒發的SSL證書,稱之為自簽名證書。
解釋原因:回
自簽署的SSL證書:不會被瀏覽器信任,數據被泄漏級劫持安全漏洞安全風險較高。
自簽名主要風險:
瀏覽器的地址欄會提示風險不安全網站。
小程序或APP無法應用與支持。
無法實現信用與介面交易行為。
網頁會被劫持,被強制插入廣告或跳轉到其它網頁。
用戶數據明文傳輸,隱私信息被中間劫持。
極容易被劫持和釣魚攻擊。
自簽名安全隱患:
自簽證書最容易受到SSL中間人攻擊
自簽證書支持不安全的SSL通信重新協商機制
自簽證書支持非常不安全的SSL V2.0協議
自簽證書沒有可訪問的吊銷列表
自簽證書使用不安全的1024位非對稱密鑰對
自簽證書證書有效期太長
自簽證書普遍存在嚴重的安全漏洞,極易受到攻擊
解決方法:Gworg申請可信SSL證書。