apache 配置https 支持ssl
1. 安裝openssl
apache2.0 建議安裝0.9版本,我曾經試過2.0.59 對openssl-1.0編譯不過去
下載Openssl:http://www.openssl.org/source/
tar -zxf openssl-0.9.8k.tar.gz //解壓安裝包
cd openssl-0.9.8k //進入已經解壓的安裝包
./config //配置安裝。推薦使用默認配置
make && make install //編譯及安裝
openssl默認將被安裝到/usr/local/ssl
2. 讓apache支持ssl,編譯的時候,要指定ssl支持。
靜態或者動態
靜態方法即 --enable-ssl=static --with-ssl=/usr/local/ssl
動態方法 --enable-ssl=shared --with-ssl=/usr/local/ssl
其中第二種方法會在module/ 目錄下生成 mod_ssl.so 模塊,而靜態不會有,當然第二種方法也需要在httpd.conf 中加入
LoadModule ssl_module modules/mod_ssl.so
3. 1 創建私鑰
在創建證書請求之前,您需要首先生成服務器證書私鑰文件。
cd /usr/local/ssl/bin //進入openssl安裝目錄
openssl genrsa -out server.key 2048 //運行openssl命令,生成2048位長的私鑰server.key文件。如果您需要對 server.key 添加保護密碼,請使用 -des3 擴展命令。Windows環境下不支持加密格式私鑰,Linux環境下使用加密格式私鑰時,每次重啓Apache都需要您輸入該私鑰密碼(例:openssl genrsa -des3 -out server.key 2048)。
cp server.key /usr/local/apache/conf/ssl.key/
3.2 生成證書請求(CSR)文件
openssl req -new -key server.key -out certreq.csr
Country Name: //您所在國家的ISO標準代號,中國爲CN
State or Province Name: //您單位所在地省/自治區/直轄市
Locality Name: //您單位所在地的市/縣/區
Organization Name: //您單位/機構/企業合法的名稱
Organizational Unit Name: //部門名稱
Common Name: //通用名,例如:www.itrus.com.cn。此項必須與您訪問提供SSL服務的服務器時所應用的域名完全匹配。
Email Address: //您的郵件地址,不必輸入,直接回車跳過
"extra"attributes //以下信息不必輸入,回車跳過直到命令執行完畢。
3.3 備份私鑰並提交證書請求
請將證書請求文件certreq.csr提交給天威誠信,並備份保存證書私鑰文件server.key,等待證書的簽發。服務器證書密鑰對必須配對使用,私鑰文件丟失將導致證書不可用。
4.安裝證書
4.1 獲取服務器證書中級CA證書
爲保障服務器證書在客戶端的兼容性,服務器證書需要安裝兩張中級CA證書(不同品牌證書,可能只有一張中級證書)。
從郵件中獲取中級CA證書:
將證書籤發郵件中的從BEGIN到 END結束的兩張中級CA證書內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘貼到同一個記事本等文本編輯器中,中間用回車換行分隔。修改文件擴展名,保存爲conf/ssl.crt/intermediatebundle.crt文件(如果只有一張中級證書,則只需要保存並安裝一張中級證書)。
4.2 獲取EV服務器證書
將證書籤發郵件中的從BEGIN到 END結束的服務器證書內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”) 粘貼到記事本等文本編輯器中,保存爲ssl.crt/server.crt文件
4.3 apache的配置 2.0的配置
httpd.conf 中增加
Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot "/data/web/www"
ServerName aaa.com:443
ErrorLog "logs/error.log"
CustomLog "logs/access.log" combined
<IfModule mod_ssl.c>
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
SSLCertificateChainFile /usr/local/apache/conf/ssl.crt/intermediatebundle.crt
</IfModule>
</VirtualHost>
apache2.0 建議安裝0.9版本,我曾經試過2.0.59 對openssl-1.0編譯不過去
下載Openssl:http://www.openssl.org/source/
tar -zxf openssl-0.9.8k.tar.gz //解壓安裝包
cd openssl-0.9.8k //進入已經解壓的安裝包
./config //配置安裝。推薦使用默認配置
make && make install //編譯及安裝
openssl默認將被安裝到/usr/local/ssl
2. 讓apache支持ssl,編譯的時候,要指定ssl支持。
靜態或者動態
靜態方法即 --enable-ssl=static --with-ssl=/usr/local/ssl
動態方法 --enable-ssl=shared --with-ssl=/usr/local/ssl
其中第二種方法會在module/ 目錄下生成 mod_ssl.so 模塊,而靜態不會有,當然第二種方法也需要在httpd.conf 中加入
LoadModule ssl_module modules/mod_ssl.so
3. 1 創建私鑰
在創建證書請求之前,您需要首先生成服務器證書私鑰文件。
cd /usr/local/ssl/bin //進入openssl安裝目錄
openssl genrsa -out server.key 2048 //運行openssl命令,生成2048位長的私鑰server.key文件。如果您需要對 server.key 添加保護密碼,請使用 -des3 擴展命令。Windows環境下不支持加密格式私鑰,Linux環境下使用加密格式私鑰時,每次重啓Apache都需要您輸入該私鑰密碼(例:openssl genrsa -des3 -out server.key 2048)。
cp server.key /usr/local/apache/conf/ssl.key/
3.2 生成證書請求(CSR)文件
openssl req -new -key server.key -out certreq.csr
Country Name: //您所在國家的ISO標準代號,中國爲CN
State or Province Name: //您單位所在地省/自治區/直轄市
Locality Name: //您單位所在地的市/縣/區
Organization Name: //您單位/機構/企業合法的名稱
Organizational Unit Name: //部門名稱
Common Name: //通用名,例如:www.itrus.com.cn。此項必須與您訪問提供SSL服務的服務器時所應用的域名完全匹配。
Email Address: //您的郵件地址,不必輸入,直接回車跳過
"extra"attributes //以下信息不必輸入,回車跳過直到命令執行完畢。
3.3 備份私鑰並提交證書請求
請將證書請求文件certreq.csr提交給天威誠信,並備份保存證書私鑰文件server.key,等待證書的簽發。服務器證書密鑰對必須配對使用,私鑰文件丟失將導致證書不可用。
4.安裝證書
4.1 獲取服務器證書中級CA證書
爲保障服務器證書在客戶端的兼容性,服務器證書需要安裝兩張中級CA證書(不同品牌證書,可能只有一張中級證書)。
從郵件中獲取中級CA證書:
將證書籤發郵件中的從BEGIN到 END結束的兩張中級CA證書內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”)粘貼到同一個記事本等文本編輯器中,中間用回車換行分隔。修改文件擴展名,保存爲conf/ssl.crt/intermediatebundle.crt文件(如果只有一張中級證書,則只需要保存並安裝一張中級證書)。
4.2 獲取EV服務器證書
將證書籤發郵件中的從BEGIN到 END結束的服務器證書內容(包括“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”) 粘貼到記事本等文本編輯器中,保存爲ssl.crt/server.crt文件
4.3 apache的配置 2.0的配置
httpd.conf 中增加
Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot "/data/web/www"
ServerName aaa.com:443
ErrorLog "logs/error.log"
CustomLog "logs/access.log" combined
<IfModule mod_ssl.c>
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
SSLCertificateChainFile /usr/local/apache/conf/ssl.crt/intermediatebundle.crt
</IfModule>
</VirtualHost>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.