https是一個安全的訪問方式,數據在傳輸過程當中是加密的,https基於SSL。html
1、安裝apache和ssl模塊apache
一、安裝apachevim
#yum install httpd瀏覽器
二、安裝ssl模塊安全
#yum install mod_ssl服務器
重啓apache:this
#service httpd restart加密
安裝完mod_ssl會建立一個默認的SSL證書,路徑位於/etc/pki/tls,此時能夠當即經過https訪問服務器了:spa
https://X.X.X.X/rest
若是不使用默認的證書,也可使用openssl手動建立證書。
2、使用openssl手動建立證書
一、安裝openssl
#yum install openssl
二、生成服務器私鑰
#cd /etc/pki/tls
#openssl genrsa -out server.key 1024
注意:server.key是私鑰。
三、用私鑰server.key文件生成證書請求文件csr
#openssl req -new -key server.key -out server.csr
注:server.csr是證書請求文件。
此步驟須要輸入一些證書信息:
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:shanghai
Locality Name (eg, city) [Default City]:shanghai
Organization Name (eg, company) [Default Company Ltd]:ccc
Organizational Unit Name (eg, section) []:bbb
Common Name (eg, your name or your server's hostname) []:www.test.com
Email Address []:a@a.com
輸入國家、省份、城市、公司、部門、姓名或服務器名、電子郵箱,隨後會要求輸入一個challengepassword(密碼),無需輸入,後面一概直接回車便可。
四、生成數字簽名crt文件(證書文件)
#openssl x509 -days 365 -req -in server.csr -signkey server.key -outserver.crt
用私鑰簽名證書請求文件,證書的申請機構和頒發機構都是本身。
五、編輯apache的ssl配置文件
vim/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.d/ssl.conf文件配置具體以下:
<VirtualHost _default_:443>
DocumentRoot "/var/www/https" //設置網頁存放目錄
ServerName *:443 //服務器的端口
DirectoryIndex index.html index.html.var //首頁名稱
SSLEngine on
SSLCertificateFile /etc/pki/tls/server.crt //證書
SSLCertificateKeyFile /etc/pki/tls/server.key //私鑰
</VirtualHost>
六、重啓apache
#servicehttpd restart
訪問https://ip/,就能看到證書信息了。
因爲不是第三方根證書頒發機構頒發的證書,而是本身頒發的證書,因此瀏覽器會提示安全證書不受信任。
!!!注意:首頁index.html 的文件權限爲755,不然將會出現如上提示:
Forbidden
Youdon't have permission to access /main.html on this server.
解決方法:修改首頁index.html讀寫權限。
#Chmod755 index.html
關於openssl指令的補充說明:
#openssl [操做] -out filename [bits]
參數說明:
[操做] 主要的操做有以下兩個:
genrsa,創建RSA加密的Public key
req,創建憑證要求文件或者是憑證文件
-out ,後面加上輸出的文件名,就是那把key name
bits,用在genrsa加密的公鑰的長度
-x509,X.509,CertificateData Management. 一種驗證的管理方式
例:創建一支長度爲1024bits的Public Key,注意文件名。
#openssl genrsa -out Server.key 1024
生成證書請求命令:
#Openssl req -new -key file.key -out file.csr -config /path/to/openssl.cnf
-config:指定openssl的配置文件路徑,不指定時,默認會訪問Unix格式的默認路徑:/usr/local/ssl/openssl.cnf。
例:#openssl req -new -key server.key -outserver.csr