:: วิธีการสร้างกุญแจคู่และ Certificate Signing Request(CSR) ด้วยโปรแกรม openssl ::

  1. สร้างกุญแจคู่และ Certificate Signing Request (CSR) โดยใช้โปรแกรม openssl หน่วยงานจะต้องระบุข้อมูลของเครื่องเว็บเซิร์ฟเวอร์ ดังนี้

    Country Name (2 letter code)[AU]: TH ระบุรหัสประเทศ 2 ตัว ตามมาตรฐาน ISO 3166 สำหรับประเทศไทยใช้ TH
    State or Province Name (full name) [Some-State]: Bangkok ระบุจังหวัดที่หน่วยงานให้บริการเว็บเซิร์ฟเวอร์ตั้งอยู่
    Locality Name (eg, city) [ ]: Chatujak ระบุเขตที่หน่วยงานให้บริการเว็บเซิร์ฟเวอร์ตั้งอยู่
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: Kasetsart University ระบุชื่อหน่วยงานต้นสังกัด
    Organization Unit Name (eg, section) [ ]: Office of Computer Services ระบุชื่อหน่วยงานเจ้าของเครื่องให้บริการเว็บเซิร์ฟเวอร์
    Common Name (eg, YOUR name) [ ]: webmail.ku.ac.th ระบุชื่อโดเมนของเครื่องเว็บเซิร์ฟเวอร์
    Email Address [ ]: cpcmrt@ku.ac.th ระบุอีเมล์แอดแดรสของผู้ดูแลเครื่องเว็บเซิร์ฟเวอร์


    และพิมพ์คำสั่งในการสร้างกุญแจคู่และ CSR ดังนี้ (ให้แทนชื่อ server domain name ด้วยชื่อโดเมนของเครื่องเว็บเซิร์ฟเวอร์ที่ขอใช้บริการ) ตัวอย่างการสร้างกุญแจคู่และ CSR ดังแสดงในรูปที่ 1

    # openssl req -new -newkey rsa:2048 -sha256 > <<server domain name>>.csr


  2. Loading 'screen' into random state - done
    Generating a 1024 bit RSA private key
    ..................++++++
    ...........................++++++
    writing new private key to 'privkey.pem'
    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) [AU]: TH
    State or Province Name (full name) [Some-State]: Bangkok
    Locality Name (eg, city) []: Chatujak
    Organization Name (eg, company) [Internet Widgits Pty Ltd]: Kasetsart University
    Organizational Unit Name (eg, section) []: Office of Computer Services
    Common Name (eg, YOUR name) []: webmail.ku.ac.th
    Email Address []: cpcmrt@ku.ac.th

    Please enter the following 'extra' attributes to be sent with your certificate request
    A challenge password []:
    An optional company name []:

    รูปที่ 1 ตัวอย่างการสร้างกุญแจคู่และ CSR


              เมื่อกรอกรายละเอียดของข้อมูลเสร็จเรียบร้อยแล้ว โปรแกรมจะสร้างกุญแจส่วนตัว(private key) ชื่อ privkey.pem และกุญแจสาธารรณะ(public key) หรือ CSR เป็น <<server domain name>>.csr ทั้งนี้ทางหน่วยงานจะต้องส่ง กุญแจสาธารณะ (public key) หรือ CSR นี้ ส่งเมลมาที่สำนักบริการคอมพิวเตอร์เพื่อทำการออกใบรับรองอิเล็กทรอนิกส์สำหรับเครื่องเว็บเซิร์ฟเวอร์ต่อไป ตัวอย่างของกุญแจสาธารณะ (public key) หรือ CSR ดังแสดงในรูปที่ 2

    -----BEGIN CERTIFICATE REQUEST-----
    MIICCTCCAXICAQAwgbIxCzAJBgNVBAYTAlRIMRAwDgYDVQQIEwdCYW5na29rMREw DwYDVQQHEwhDaGF0dWphazEdMBsGA1UEChMUS2FzZXRzYXJ0IFVuaXZlcnNpdHkx JDAiBgNVBAsTG09mZmljZSBvZiBDb21wdXRlciBTZXJ2aWNlczEZMBcGA1UEAxMQ d2VibWFpbC5rdS5hYy50aDEeMBwGCSqGSIb3DQEJARYPY3Bjc25tQGt1LmFjLnRo MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC40HRMyUdC3NxbfvpvZXjPMM2/ 0zF2vvKMtD8yUFS5Z+bc3zr12qmzMO+e7f2M10+6pBNUJitNrAykBwRbNbbz2a/Q qRwu/Kdb6UGq5Laaaot0kPHJOde8sYoyB2AlbRhRQORAsNLBANYAiLvkqKvztJKv XWVNrsYVjp4O1Tp+/wIDAQABoBYwFAYJKoZIhvcNAQkCMQcTBWt1b2NzMA0GCSqG SIb3DQEBBAUAA4GBADBYIHqs+/K/OT6k/zIjc4LH5i0WQXlu/sQUaNFNmx2uFs9k G/tRzTJX9zuUYHZazBrz7vrgXl4gZR2ZpgzMGqoU7C/qsftSZR1Xl+QmI6wPCWf0 YW3ngzGvcvb9ByuPvmZTqB44JRIdgIK9TWoXKpxnprK8IttjGkwpYqWeizNC
    -----END CERTIFICATE REQUEST-----

    รูปที่ 2 ตัวอย่างกุญแจสาธารณะ (public key)หรือ CSR

  3. เนื่องจากกุญแจส่วนตัว (privkey.pem) ที่ได้จากโปรแกรม openssl ยังไม่ได้เข้ารหัสลับ เพื่อเป็นการป้องกันความปลอดภัยในการใช้งาน ให้ทำการเข้ารหัสกุญแจส่วนตัวก่อนนำไปใช้งาน โดยพิมพ์คำสั่งดังต่อไปนี้ (ให้แทนชื่อ server domain name ด้วยชื่อโดเมนของเครื่องเว็บเซิร์ฟเวอร์ที่ขอใช้บริการ)

    # openssl rsa -in privkey.pem -out <<server domain name>>.key

    โปรแกรม openssl จะให้กำหนดรหัสผ่านเพื่อเข้ารหัสลับกุญแจส่วนตัวดังรูปที่ 3

    secure private.pem
    read RSA key
    Writing RSA key
    Enter PEM phrase:
    Verifying password - Enter PEM phrase:

    รูปที่ 3 การเข้ารหัสกุญแจส่วนตัว


    *** ในการใช้งานทุกครั้งผู้ใช้ควรจะใช้กุญแจส่วนตัวที่ผ่านการเข้ารหัสแล้วเท่านั้น ส่วนกุญแจส่วนตัว (private.pem) ที่ยังไม่ได้เข้ารหัสควรจะลบทิ้งไป ***