การกําหนดค่าพอร์ทัลเพื่อใช้ HTTPS

พอร์ทัลบริการสำหรับนักพัฒนาแอป v. 4.17.05

การติดตั้งพอร์ทัลใน Private Cloud ที่ Apigee แนะนำทั้งหมดกำหนดให้พอร์ทัลต้องอยู่หลังตัวจัดสรรภาระงาน ดังนั้น คุณจึงกำหนดค่า TLS ในตัวจัดสรรภาระงานเอง ไม่ใช่ในพอร์ทัล ดังนั้นขั้นตอนที่คุณใช้ในการกำหนดค่า TLS จึงขึ้นอยู่กับตัวจัดสรรภาระงาน

อย่างไรก็ตาม คุณสามารถกำหนดค่า TLS ในเว็บเซิร์ฟเวอร์ที่โฮสต์พอร์ทัลได้หากจำเป็น

ดูภาพรวมของการใช้ TLS ในพอร์ทัลได้ที่หัวข้อการใช้ TLS ในพอร์ทัล

สำหรับพอร์ทัลที่ทำงานบน Apache

หากการติดตั้งพอร์ทัลใช้เว็บเซิร์ฟเวอร์ Apache ให้ทำดังนี้

  1. รับคีย์และใบรับรอง TLS
  2. ตรวจสอบว่าคุณติดตั้ง mod_ssl:
    > yum install mod_ssl
  3. อัปเดต /etc/httpd/conf/httpd.conf ดังนี้
    1. หากต้องการปิดใช้การเข้าถึง HTTP ในพอร์ต 80 ให้ค้นหา "Listen 80" และใส่เครื่องหมายคอมเมนต์ไว้
    2. เพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของไฟล์
      LoadModule ssl_module modules/mod_ssl.so
      Listen 443
  4. ตั้งค่าโฮสต์เสมือนโดยแก้ไข /etc/httpd/conf/vhosts/devportal.conf เพื่อเพิ่มสิ่งต่อไปนี้
    <VirtualHost *:443>
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "<public cert path>"
    SSLCertificateKeyFile "<private key path>"
    DocumentRoot "/var/www/html"
    <Directory "/var/www/html">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
    </VirtualHost>


    นอกจากนี้ ให้ทำเครื่องหมายคำจำกัดความ VirtualHost ที่มีอยู่เป็นความคิดเห็นหากคุณไม่ต้องการใช้ HTTP
  5. เนื่องจาก TLS ได้รับการกำหนดค่าใน httpd.conf คุณจึงไม่จำเป็นต้องใช้ ssl.conf:
    > mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.orig
  6. รีสตาร์ท Apache:
    > service httpd restart
    ระบบอาจแจ้งให้คุณป้อนพาสเฟรสสำหรับไฟล์คีย์

คุณควรเข้าถึงพอร์ทัลผ่าน TLS ได้

สำหรับพอร์ทัลที่ทำงานบน Nginx

โดยค่าเริ่มต้น พอร์ทัลที่ใช้เว็บเซิร์ฟเวอร์ Nginx จะคอยฟังคำขอ HTTP ในพอร์ต 8079 หากคุณเปิดใช้ TLS พอร์ทัลจะรอรับเฉพาะคำขอ HTTPS ในพอร์ต 8079 กล่าวคือ คุณสามารถกำหนดค่าพอร์ทัลให้รอรับคำขอ HTTP หรือคำขอ HTTPS ได้ แต่จะกำหนดค่าให้รอรับทั้ง 2 อย่างไม่ได้

นอกจากนี้ คุณยังเปลี่ยนหมายเลขพอร์ตได้ตามที่อธิบายไว้ในหัวข้อตั้งค่าพอร์ต HTTP ที่พอร์ทัลใช้

หากการติดตั้งพอร์ทัลใช้เว็บเซิร์ฟเวอร์ Nginx ให้ทำดังนี้

  1. รับคีย์และใบรับรอง TLS สำหรับตัวอย่างนี้ ใบรับรองจะอยู่ในไฟล์ชื่อ server.crt และคีย์จะอยู่ใน server.key
  2. อัปโหลดใบรับรองและคีย์ไปยังเซิร์ฟเวอร์พอร์ทัลที่ /opt/apigee/customer/nginx/ssl
  3. เปลี่ยนเจ้าของใบรับรองและคีย์เป็นผู้ใช้ "apigee":
    > chown apigee:apigee /opt/apigee/customer/nginx/ssl/server.crt
    > chown apigee:apigee /opt/apigee/customer/nginx/ssl/server.key
  4. เปิด /opt/apigee/customer/application/drupal-devportal.properties ในเครื่องมือแก้ไข หากไม่มีไฟล์และไดเรกทอรี ให้สร้างขึ้นมา
  5. ตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ใน drupal-devportal.properties:
    conf_devportal_ssl_block=ssl on; ssl_certificate /opt/apigee/customer/nginx/ssl/server.crt; ssl_certificate_key /opt/apigee/customer/nginx/ssl/server.key;
    conf_devportal_http_https_redirect=
    conf_devportal_fastcgi_https=fastcgi_param HTTPS on; fastcgi_param HTTP_SCHEME https;

    สำหรับ conf_devportal_ssl_block ให้ระบุเส้นทางไปยังไฟล์ใบรับรองและไฟล์คีย์ คุณไม่จำเป็นต้องแก้ไขพร็อพเพอร์ตี้อื่นๆ
  6. บันทึกไฟล์
  7. รีสตาร์ทพอร์ทัล:
    /opt/apigee/apigee-service/bin/apigee-service apigee-drupal-devportal restart

คุณควรเข้าถึงพอร์ทัลผ่าน TLS ได้