apache+ssl+ca

来源:http://www.cnblogs.com/sangmu/archive/2017/02/21/6423420.html
-Advertisement-
Play Games

第一步:搭建apache伺服器,這在上篇博客中已經完成 http://www.cnblogs.com/sangmu/p/6422238.html 第二步:安裝ssl yum install mod_ssl -y iptables -I INPUT 1 -p tcp --dport 443 -j AC ...


第一步:搭建apache伺服器,這在上篇博客中已經完成 http://www.cnblogs.com/sangmu/p/6422238.html 第二步:安裝ssl
yum install mod_ssl -y    
 iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT
 service iptables save
 1 vim /etc/httpd/conf.d/ssl.conf
 2 
 3 Listen 443                   //監聽的埠號
 4 <VirtualHost _default_:443>  // 配置虛擬主機,如果僅僅只是對一個網站加密,則將default改成功能變數名稱
 5 DocumentRoot "/var/www/html" //網頁文件所在目錄
 6 ServerName www.example.com:443 // 加密網站功能變數名稱
 7 SSLEngine on                 // 開啟ssl
 8 SSLCertificateFile /etc/httpd/conf/ssl.crt/test.crt   //www伺服器證書位置
 9 SSLCertificateKeyFile /etc/httpd/conf/ssl.key/test.key //www伺服器秘鑰位置
10 SSLCACertificateFile /etc/pki/CA/ca.crt              //CA伺服器證書位置
11 SSLVerifyClient require      //是否開啟雙向認證,開啟後 要求瀏覽器客戶端,必須有CA頒發的證書
12 SSLVerifyDepth  10           //雙向驗證層數
至此,ssl安裝完成。 第三步:安裝CA ①安裝ca
yum install openssl -y 
vim /etc/pki/tls/openssl.cnf
 1 dir             = /etc/pki/CA              //目錄
 2 certs           = $dir/certs               // 頒發證書位置
 3 crl_dir         = $dir/crl                 //吊銷證書位置
 4 database        = $dir/index.txt           //索引表
 5 new_certs_dir   = $dir/newcerts            //新證書位置
 6 certificate     = $dir/ca.crt              //自己證書位置
 7 serial          = $dir/serial              //證書序列號
 8 crlnumber       = $dir/crlnumber           //證書吊銷列表
 9 private_key     = $dir/private/ca.key      //秘鑰位置
10 countryName             = optional
11 stateOrProvinceName     = optional
12 organizationName        = optional
13 organizationalUnitName  = optional
②創建目錄和文件
cd /etc/pki/CA
mkdir certs newcerts crl
touch index.txt serial
 echo 01 > serial   //導入初始序列號
③生成ca秘鑰
umask 077;openssl genrsa -out private/ca.key 2048  
註:       umask 077 //設置生成文件的許可權       genrsa //生成私鑰       -out //私鑰存放路徑       2048 //2048位元組計算 ④給ca伺服器生成證書申請請求
1 openssl req -new -key ca.key -out ca.csr

 ⑤給ca用伺服器的私鑰給證書伺服器頒發ca證書

openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt
註:也可直接給ca頒發自己的證書ca.crt
1 openssl req -x509 -new -key private/ca.key -out ca.crt -days 365
2 Country Name (2 letter code) [GB]:CN                         //國家
3 State or Province Name (full name) [Berkshire]:JS            //省份
4 Locality Name (eg, city) [Newbury]:NT                        //地區
5 Organization Name (eg, company) [My Company Ltd]:NTZD        //組織名
6 Organizational Unit Name (eg, section) []:DZX                //部門
7 Common Name (eg, your name or your server's hostname) []:test4.sangmu.com  //功能變數名稱
8 Email Address []:root                                        //郵箱
第四步:apache 申請證書和秘鑰 ①創建目錄和文件
cd /etc/httpd/conf
mkdir ssl.key ssl.crt
②生成秘鑰
umask 007;openssl genrsa -out ssl.key/test.key 2048
③填寫證書申請請求
umask 007;openssl genrsa -out ssl.key/test.key 2048
第五步:頒發申請 
1 openssl ca -in web.csr -cert ca.crt -keyfile -out web.crt
重啟服務,這個時候,在客戶端可以進行加密訪問了。

補充:

  1.如果linux ca伺服器給windows web 伺服器頒發證書,則需要將windows網頁證書申請文件導入到ca伺服器中,然後頒發

1 openssl pkcs12 -export -clcerts -in web.crt -inkey web.key -out web.p12

  2.如果ca伺服器搭建在windows上,web伺服器搭建在linux 上,則需要linux 通過網頁申請證書,然後將證書文件進行格式轉化

1 openssl x509 -in cert.cer -inform der -outform pem -out web.crt


如果開啟雙向認證,則需要給瀏覽器客服端頒發證書 ①生成client秘鑰client.key
1 opensll genrsa -des3 -out client.key
②填寫證書生成請求client.csr
openssl req -new -key client.key -out client.csr
③頒發client證書 client.crt
1 openssl ca -in client.csr -cert ca.crt -keyfile -out client.crt
④client證書格式轉換
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12 
⑤在client端安裝ca根證書ca.crt和clien證書client.p12 至此就完成了雙向驗證  註:本次實驗是在centos5.5+Windows 7 谷歌瀏覽器 環境中操作。

 

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本位出處:http://www.cnblogs.com/wy123/p/6426261.html 正如ADO.NET連接至數據執行增刪查改操作一樣,PowerShell 也可以連接SQLServer資料庫,執行性增刪查改功能,除此之外,PowerShell還可以執行DDL和DCL操作,另外就是支持D ...
  • 系統:Ubuntu 16.04 JDK版本:1.8.0_121 Ubuntu下安裝JDK配置環境變數可見我的這篇文章 http://www.cnblogs.com/AloneZ/p/Ubuntu1.html 1.官網下載eclipse,我的版本是eclipse-jee-neon-2-linux-gt ...
  • 簡單的來理解,我所說的CNMP,不是CNM+P,而是CentOs+Nginx+MySql+PHP,也可以單純的理解為LNMP,但是系統是我們自己選的,雖說是Linux的一個分支,但我就喜歡CentOs的這個C。 好的,我們開搞伺服器。 工欲善其事,必先利其器,首先,你需要兩臺電腦,為了更好的去模擬。 ...
  • 0x00 CREELINKS平臺簡介 0x00 CREELINKS平臺簡介 CREELINKS(創e聯)是由大信科技有限公司研發,集合軟硬體、操作系統、數據云儲存、開發工具於一體,用於物聯網產品的設計、研發與生產的平臺。 平臺涉及智能硬體、車聯網、智能家居、可穿戴設備、工業控制等各個物聯網領域。旨在 ...
  • 作為一個Linux新手,在寫這篇博客之前,裝了幾次jdk,好多次都是環境變數配置錯誤,導致無法登錄系統。經過幾天的研究,今天新裝系統,從頭來完整配置一遍 系統版本:Ubuntu 16.04 JDK版本:jdk1.8.0_121 1.官網下載JDK文件jdk-8u121-linux-x64.tar.g ...
  • Linux 用戶管理2 添加修改和刪除用戶,必須是超級管理員root賬號才可以進行的操作,所以噹噹前賬號不是超級管理員root賬號時,首先要先切換為root賬號。 如圖,ylq為普通用戶,執行添加用戶時,會出現如圖的錯誤: 快捷切換為root用戶: 添加用戶 useradd命令 此時便可以執行添加用 ...
  • 隨著網路的發展,網路安全也越來越重要,對於網站來說,從Http升級到https也是我們要做的首要事情。要實現https,首先我們需要申請一張SSL證書,這篇文章我主要介紹下邊這幾個方面: 1. SSL簡單介紹 2. 免費Letencrypt證書部署 3. 安裝註意事項 一.SSL簡單介紹 ssl作為 ...
  • 在linux進行連接windows下的ftp伺服器 ftp://192.168.2.71 輸入用戶名和密碼登陸成功 當使用get把文件下載後,然後unzip進行解壓時,出現了問題 error [10201_database_linux32.zip]: start of central directo ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...