ขั้นตอนการสร้าง SSL request
# cd ~root/sslCA
# openssl req -new -nodes \
-out jjthai-req.pem \
-keyout private/jjthai-key.pem \
-config /etc/ssl/openssl.cnf
จะได้ผลลัพธ์ประมาณนี้ (ในช่วงท้ายจะมีการ ถาม challenge password ให้ เคาะ enter ผ่านเลย - คือไม่มี password เพราะ ถ้าใส่ challenge password ทุกครั้งที่ start apache มันจะขึ้น prompt เพื่อถาม password)
-------------------------------------------------
Generating a 1024 bit RSA private key
.............................++++++
.............................++++++
writing new private key to 'private/jjthai-key.pem'
-----
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) [TH]:
State or Province Name (full name) [NE]:
Locality Name (eg, city) [JJthai]:
Organization Name (eg, company) []: JJthai
Organizational Unit Name (eg, section) []: Development
Common Name (eg, YOUR name) []: JJthai
Email Address []: support@jjthai.net
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
-------------------------------------------------
ขั้นตอนการสร้าง SSL Certificate
# openssl ca
-config /etc/ssl/openssl.cnf
-out jjthai-cert.pem \
-infiles jjthai-req.pem
มันจะถาม password ของ CA (ที่บอกให้จำ password ในตอนที่ 1)
-------------------------------------------------
Using configuration from /etc/ssl/openssl.cnf
Enter pass phrase for /root/sslCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 4096 (0x1000)
Validity
Not Before: Aug 5 02:51:42 2006 GMT
Not After : Aug 2 02:51:42 2007 GMT
Subject:
countryName = TH
stateOrProvinceName = NE
organizationName = JJthai
commonName = JJthai
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
8B:48:A5:3A:C7:EA:9A:B3:61:9F:AC:B9
X509v3 Authority Key Identifier:
keyid:F8:D3:77:0C:78:6D:87:20:00:BF
DirName:/C=TH/ST=NE/L=JJthai
/O=JJthai
/CN=JJthai
serial:E5:A5:39:3F:6E:63:FA:7E
Certificate is to be certified until
Aug 2 02:51:42 2007 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
-------------------------------------------------
สร้างไดเรคทอรี่เพื่อเก็บ Certificate
# mkdir /etc/ssl/crt
# mkdir /etc/ssl/key
# cp ~/sslCA/jjthai-cert.pem /etc/ssl/crt
# cp ~/sslCA/private/jjthai-key.pem /etc/ssl/key
กำหนดค่า Apache 2.2 ให้ใช้งาน SSL
ในไฟล์ httpd.conf ด้านล่างๆ มันจะ มี comment ในการ include ไฟล์ ไว้ ให้มองหาบรรทัดนี้แล้วเอา comment ออก (ไดเรคทอรี่อาจจะมีไม่ตรงกันบ้างขึ้นอยู่กับวิธีการติดตั้ง Apache ของแต่ละคน)
# Secure (SSL/TLS) connections
Include etc/apache22/extra/httpd-ssl.conf
จากนั้นก็เข้าไปแก้ไขไฟล์ /usr/local/etc/apache22/extra/httpd-ssl.conf concept หลักๆ ก็คือ ตัวเข้มที่ต้องชี้ ตำแหน่ง cert, key ให้ถูกต้อง
SSLCertificateFile /etc/ssl/crt/jjthai-cert.pem
SSLCertificateKeyFile /etc/ssl/key/jjthai-key.pem
หากในเครื่องมีหลายเว็บ แล้วแต่ละเว็บก็ต้องใช้ SSL คนละอันก็ต้องกำหนดค่า ของ แต่ละ virtualhost ให้ถูกแค่นั้นเอง ข้างล่างนี้เป็นตัวอย่าง (ยังไม่ได้ทดลองนะครับ อาจจะ work หรือ ไม่ work ก็ต้องไปลองแก้กันดู)
-------------------------------------------------
ServerName ssl.jjthai.net
SSLEngine on
SSLCertificateFile /etc/ssl/crt/jjthai-cert.pem
SSLCertificateKeyFile /etc/ssl/key/jjthai-key.pem
DocumentRoot /usr/local/www/apache22/data
CustomLog /usr/local/www/logs/ssl-access_log combined
ErrorLog /usr/local/www/logs/ssl-error_log
-------------------------------------------------
จากนั้นให้ รีสตาร์ท apache service แล้วลอง ใช้ browser เรียก https:// เพื่อทดสอบ จะต้องใช้งานได้ ถ้าไม่ได้ แต่ทำตามขั้นตอนข้างบนทุกอย่างแล้ว ก็อาจจะเป็นที่ Firewall ที่ปิดพอร์ต หรือไม่ก็ Browser ที่ block certificate อยู่ แค่นั้นเอง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น