前提:
nginx
一、主機要先安裝openssl
vim
二、編譯安裝nginx時,要加上--with-openssl和--with-http_ssl_module
bash
一、生成自簽字證書服務器
[root@101 /]# openssl req -new -x509 -keyout /root/ca.key -out /root/ca.crt Generating a 2048 bit RSA private key .............+++ ...................................+++ writing new private key to '/root/ca.key' Enter PEM pass phrase: #輸入密鑰保護密碼 Verifying - Enter PEM pass phrase: #確認密碼保護密碼 ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:guangzhou Locality Name (eg, city) [Default City]:guangzhou Organization Name (eg, company) [Default Company Ltd]:lzs Organizational Unit Name (eg, section) []:it Common Name (eg, your name or your server's hostname) []:101.lzs.com Email Address []:root@lzs.com
二、修改配置文件openssl.cnf
ide
vim /etc/pki/tls/openssl.cnf [ ca ] default_ca = CA_default # The default ca section #################################################################### [ CA_default ] dir = /etc/pki/CA #證書的根目錄,要記住這個目錄 certs = $dir/certs crl_dir = $dir/crl database = $dir/index.txt #unique_subject = no new_certs_dir = $dir/newcerts certificate = $dir/ca.crt # 修改這裏,表示簽名時使用的證書 serial = $dir/serial crlnumber = $dir/crlnumber crl = $dir/crl.pem private_key = $dir/private/cakey.pem RANDFILE = $dir/private/.rand
三、複製證書到證書根目錄/etc/pki/CA下,並在該目錄下建立空文件index.txt和serial,並向serial輸入」01「ui
cd /etc/pki/CA cp /root/ca.crt . touch index.txt touch serial echo "01" >serial
四、生成服務器RSA私鑰/root/server.key
code
openssl genrsa -des3 -out /root/server.key 1024
五、爲私鑰去除口令orm
openssl rsa -in /root/server.key -out /root/server_nopwd.key
五、生成證書請求文件/root/server.csrserver
[root@101 /]# openssl req -new -key /root/server.key -out /root/server.csr Enter pass phrase for /root/server.key: #輸入第4步生成的密鑰的保護密碼 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. --------下面這部分應該和建立私有證書時填的同樣------------------------ Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:guangzhou Locality Name (eg, city) [Default City]:guangzhou Organization Name (eg, company) [Default Company Ltd]:lzs Organizational Unit Name (eg, section) []:it Common Name (eg, your name or your server's hostname) []:101.lzs.com ---------------------------------------------------------------- Email Address []:root@lzs.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:www.lzs.com An optional company name []:lzs
六、用私有證書給證書請求文件/root/server.csr簽名ssl
[root@101 CA]# openssl ca -in /root/server.csr -out /root/server.crt -cert /root/ca.crt -keyfile /root/ca.key -config /etc/pki/tls/openssl.cnf Using configuration from /etc/pki/tls/openssl.cnf Enter pass phrase for ca.key: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 1 (0x1) Validity Not Before: Aug 31 14:09:15 2016 GMT Not After : Aug 31 14:09:15 2017 GMT Subject: countryName = CN stateOrProvinceName = guangzhou organizationName = lzs organizationalUnitName = it commonName = 101.lzs.com emailAddress = root@lzs.com X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 18:80:30:B7:C6:11:61:AE:F3:62:9D:D0:33:D9:97:CB:45:5A:31:91 X509v3 Authority Key Identifier: keyid:DA:99:4B:9B:29:A8:D8:14:54:FA:52:4B:1E:C3:E0:81:C6:A6:EF:42 Certificate is to be certified until Aug 31 14:09:15 2017 GMT (365 days) Sign the certificate? [y/n]:yes 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
七、編輯nginx配置文件/etc/nginx/nginx.conf
-------在配置文件的特定區域加入/修改下面內容 server { listen 443 ssl; #設置監聽的端口 server_name lzs; ssl on; ssl_certificate /root/server.crt; ssl_certificate_key /root/server_nopwd.key;
八、重啓服務
~~~~完成,在客戶端上輸入https://x.x.x.x便可訪問