Δημιουργία πιστοποιητικού SSL

Αυτό το άρθρο περιγράφει τον τρόπο δημιουργίας και εγκατάστασης πιστοποιητικών Secure Sockets Layer (SSL) για απεικονίσεις Power BI.

Για τις διαδικασίες των Windows, macOS X και Linux, πρέπει να έχετε εγκαταστήσει το πακέτο Εργαλείων απεικονίσεων pbiviz του Power BI. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Ρύθμιση του περιβάλλοντός σας για την ανάπτυξη μιας απεικόνισης Power BI.

Δημιουργία πιστοποιητικού στα Windows

Για να δημιουργήσετε ένα πιστοποιητικό χρησιμοποιώντας το PowerShell cmdlet New-SelfSignedCertificate σε Windows 8 και νεότερες εκδόσεις, εκτελέστε την ακόλουθη εντολή:

pbiviz --install-cert

Για τα Windows 7, το pbiviz εργαλείο απαιτεί να είναι διαθέσιμο το βοηθητικό πρόγραμμα OpenSSL από τη γραμμή εντολών. Για να εγκαταστήσετε το OpenSSL, μεταβείτε στα OpenSSL ή OpenSSL Binaries.

Δημιουργία πιστοποιητικού σε macOS X

Το βοηθητικό πρόγραμμα OpenSSL είναι συνήθως διαθέσιμο στο λειτουργικό σύστημα macOS X.

Μπορείτε επίσης να εγκαταστήσετε το βοηθητικό πρόγραμμα OpenSSL εκτελώντας οποιαδήποτε από τις ακόλουθες εντολές:

  • Από τη διαχείριση πακέτων Brew :

    brew install openssl
    brew link openssl --force
    
  • Χρησιμοποιώντας το MacPorts:

    sudo port install openssl
    

Αφού εγκαταστήσετε το βοηθητικό πρόγραμμα OpenSSL, εκτελέστε την ακόλουθη εντολή για να δημιουργήσετε ένα νέο πιστοποιητικό:

pbiviz --install-cert

Δημιουργία πιστοποιητικού σε Linux

Το βοηθητικό πρόγραμμα OpenSSL είναι συνήθως διαθέσιμο στο λειτουργικό σύστημα Linux.

Προτού ξεκινήσετε, εκτελέστε τις ακόλουθες εντολές για να βεβαιωθείτε ότι openssl έχουν εγκατασταθεί το και το :certutil

which openssl
which certutil

Εάν openssl το και certutil το δεν έχουν εγκατασταθεί, εγκαταστήστε τα openssl βοηθητικά προγράμματα και .libnss3

Δημιουργία του αρχείου ρύθμισης παραμέτρων SSL

Δημιουργήστε ένα αρχείο με την ονομασία /tmp/openssl.cnf που περιέχει το ακόλουθο κείμενο:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[ alt_names ]
DNS.1=localhost

Δημιουργία αρχής έκδοσης πιστοποιητικών ρίζας

Για να δημιουργήσετε μια αρχή έκδοσης πιστοποιητικών ρίζας (CA) για την υπογραφή τοπικών πιστοποιητικών, εκτελέστε τις ακόλουθες εντολές:

touch $HOME/.rnd
openssl req -x509 -nodes -new -sha256 -days 1024 -newkey rsa:2048 -keyout /tmp/local-root-ca.key -out /tmp/local-root-ca.pem -subj "/C=US/CN=Local Root CA/O=Local Root CA"
openssl x509 -outform pem -in /tmp/local-root-ca.pem -out /tmp/local-root-ca.crt

Δημιουργία πιστοποιητικού για localhost

Για να δημιουργήσετε ένα πιστοποιητικό για localhost χρήση της αρχής ΈΚΔΟΣΗς πιστοποιητικών που δημιουργήθηκε και του openssl.cnf, εκτελέστε τις ακόλουθες εντολές:

PBIVIZ=`which pbiviz`
PBIVIZ=`dirname $PBIVIZ`
PBIVIZ="$PBIVIZ/../lib/node_modules/powerbi-visuals-tools/certs"
# Make sure that $PBIVIZ contains the correct certificate directory path. ls $PBIVIZ should list 'blank' file.
openssl req -new -nodes -newkey rsa:2048 -keyout $PBIVIZ/PowerBIVisualTest_private.key -out $PBIVIZ/PowerBIVisualTest.csr -subj "/C=US/O=PowerBI Visuals/CN=localhost"
openssl x509 -req -sha256 -days 1024 -in $PBIVIZ/PowerBIVisualTest.csr -CA /tmp/local-root-ca.pem -CAkey /tmp/local-root-ca.key -CAcreateserial -extfile /tmp/openssl.cnf -out $PBIVIZ/PowerBIVisualTest_public.crt

Προσθήκη πιστοποιητικών ρίζας

Για να προσθέσετε ένα πιστοποιητικό ρίζας στη βάση δεδομένων του προγράμματος περιήγησης Chrome, εκτελέστε τις εξής εκτελέσεις:

certutil -A -n "Local Root CA" -t "CT,C,C" -i /tmp/local-root-ca.pem -d sql:$HOME/.pki/nssdb

Για να προσθέσετε ένα πιστοποιητικό ρίζας στη βάση δεδομένων του προγράμματος περιήγησης Mozilla Firefox, εκτελέστε τις εξής εκτελέσεις:

for certDB in $(find $HOME/.mozilla* -name "cert*.db")
do
certDir=$(dirname ${certDB});
certutil -A -n "Local Root CA" -t "CT,C,C" -i /tmp/local-root-ca.pem -d sql:${certDir}
done

Για να προσθέσετε ένα πιστοποιητικό ρίζας για όλο το σύστημα, εκτελέστε τις εξής προελεύσεις:

sudo cp /tmp/local-root-ca.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates

Κατάργηση πιστοποιητικών ρίζας

Για να καταργήσετε ένα πιστοποιητικό ρίζας, εκτελέστε τις εξής δύο εκτελέσεις:

sudo rm /usr/local/share/ca-certificates/local-root-ca.pem
sudo update-ca-certificates --fresh

Δημιουργία πιστοποιητικού με μη αυτόματο τρόπο

Μπορείτε επίσης να δημιουργήσετε ένα πιστοποιητικό SSL με μη αυτόματο τρόπο, χρησιμοποιώντας το OpenSSL. Μπορείτε να καθορίσετε οποιαδήποτε εργαλεία για τη δημιουργία των πιστοποιητικών σας.

Εάν το βοηθητικό πρόγραμμα OpenSSL είναι ήδη εγκατεστημένο, δημιουργήστε ένα νέο πιστοποιητικό εκτελώντας τις εξής ενέργειες:

openssl req -x509 -newkey rsa:4096 -keyout PowerBIVisualTest_private.key -out PowerBIVisualTest_public.crt -days 365

Συνήθως, μπορείτε να βρείτε τα PowerBI-visuals-tools πιστοποιητικά του διακομιστή Web εκτελώντας μία από τις ακόλουθες εντολές:

  • Για την καθολική παρουσία των εργαλείων:

    %appdata%\npm\node_modules\PowerBI-visuals-tools\certs
    
  • Για την τοπική παρουσία των εργαλείων:

    <Power BI visual project root>\node_modules\PowerBI-visuals-tools\certs
    

Μορφή PEM

Εάν χρησιμοποιείτε τη μορφή πιστοποιητικού Privacy Enhanced Mail (PEM), αποθηκεύστε το αρχείο πιστοποιητικού ως PowerBIVisualTest_public.crt και αποθηκεύστε το ιδιωτικό κλειδί ως PowerBIVisualTest_private.key.

Μορφή PFX

Εάν χρησιμοποιείτε τη μορφή πιστοποιητικού Personal Information Exchange (PFX), αποθηκεύστε το αρχείο πιστοποιητικού ως PowerBIVisualTest_public.pfx.

Εάν το αρχείο πιστοποιητικού σας PFX απαιτεί μια φράση πρόσβασης:

  1. Στο αρχείο ρύθμισης παραμέτρων, καθορίστε τα εξής:

    \PowerBI-visuals-tools\config.json
    
  2. server Στην ενότητα, καθορίστε τη φράση πρόσβασης αντικαθιστώντας τη <φράση κράτησης θέσης Η ΦΡΑΣΗ ΠΡΟΣΤΑΣΙΑΣ ΣΑΣ>:

    "server":{
        "root":"webRoot",
        "assetsRoute":"/assets",
        "privateKey":"certs/PowerBIVisualTest_private.key",
        "certificate":"certs/PowerBIVisualTest_public.crt",
        "pfx":"certs/PowerBIVisualTest_public.pfx",
        "port":"8080",
        "passphrase":"<YOUR PASSPHRASE>"
    }