Rahvusvahelise õiguse allikad on üldtunnustatult kirjas 1945. a ÜRO põhikirja juurde kuuluva Rahvusvahelise Kohtu statuudi (edaspidi statuut) art 38 lg-s 1. Seal on esimesena nimetatud “rahvusvahelisi üld- ja erikonventsioone” (st rahvusvahelisi lepinguid), millele kohe järgnevad “rahvusvaheline tava kui õigusnormina tunnustatud üldine praktika” ja “õiguse üldprintsiibid, mida tunnustavad tsiviliseeritud rahvad”. Lisaks on abistavate allikatena juttu kohtuotsustest ja kvalifitseeritud õigusteadlaste õpetustest, kuid need ei ole siinkohal eriti asjasse puutuvad. Loetletud rahvusvahelise õiguse allikatest vastavad § 3 lg 1 teises lauses nimetatud rahvusvahelise õiguse üldtunnustatud põhimõtetele ja normidele “rahvusvaheline tavaõigus” (art 38 lg 1 p b) ja “õiguse üldprintsiibid, mida tunnustavad tsiviliseeritud rahvad” (art 38 lg 1 p c). Rahvusvahelise õiguse “põhimõtete” ja “normide” eristamine on paljuski tinglik. Ka õiguse üldpõhimõtted on õigusnormid. Üldjuhul erinevad rahvusvahelise õiguse põhimõtted tavaõiguse normidest oma üldisema sisu poolest. “Rahvusvahelise õiguse üldtunnustatud normide ja põhimõtete” all on seega eelkõige mõeldud rahvusvahelist tavaõigust ja rahvusvahelise õiguse üldprintsiipe.
Kui välislepingute alus on kokkuleppeline ja positivistlik, siis kaudses mõttes on seda ka rahvusvahelise tavaõiguse alus. Rahvusvahelise tavaõiguse näol on tegemist omamoodi riikide kollektiivse ja konkludentse kokkuleppega, kus õigusnorm (kokkulepe) tuletatakse ja järeldatakse siiski mitte konkreetsest siduvast lepingust, vaid riikide normatiivse kvaliteediga järjepidevatest tegudest ja väljaütlemistest.
Rahvusvaheline tavaõigus öeldakse koosnevat – nagu viitab ka statuudi art 38 lg 1 p b sõnastus (“õigusnormina tunnustatud üldise praktika tõend”) – kahest vajalikust elemendist: objektiivse nähtusena praktikast, mis sisaldub riikide korduvas ühetaolises käitumises, ja subjektiivse nähtusena riikide veendumusest, et niiviisi tuleb – on õiguslikult kohustuslik – käituda, st tuletatud õigusest (opinio iuris sive necessitatis).
Rahvusvahelise tavaõiguse oluliseks erinevuseks võrreldes rahvusvahelise lepinguõigusega on, et tavaõiguslik reegel võib kehtida antud riigi jaoks ka siis, kui ta ise eraldi võttes polegi selle reegli siduvuse kohta selgelt ja ühemõtteliselt arvamust avaldanud, aga maailma riigid tervikuna võttes on seda teinud. Nimelt kui riik ei soovi olla seotud tavaõiguslikuks peetava normiga, peaks ta sellest rahvusvahelisele kogukonnale eraldi teada andma või protesti esitama (nn persistent objector ehk järjepidev vastuseisja). Seega võib üldtunnustatus põhineda ka vaikival konsensusel.
Rõhutatult suveräänsusest ja positivismist lähtuvad riigid – näiteks NSVL 20. sajandil – on suhtunud rahvusvahelisse tavaõigusesse kui rahvusvahelise õiguse allikasse teatud ettevaatlikkusega. Arvatakse, et tugevamatel ja mõjukamatel riikidel – ajalooliselt niisiis eelkõige lääneriikidel – on ka rohkem võimalusi (teistegi jaoks) normatiivseid tagajärgi tekitavalt käituda, tavaõiguslikke reegleid ellu kutsuda.
Alates 20. sajandi keskpaigast on toimunud pidev liikumine rahvusvahelise tavaõiguse kodifitseerimise suunas, eriti just ÜRO Rahvusvahelise Õiguse Komisjoni (ILC) algatatud suurte multilateraalsete rahvusvaheliste lepingute koostamise kaudu. Oluline on siinjuures märkida, et vastavalt ÜRO Rahvusvahelise Kohtu otsusele kohtuasjas Nicaragua vs.USA 1986. a võib identse sisuga rahvusvahelise õiguse norm kehtida nii lepingu- kui tavaõiguslikult. Seega juhul, kui riik otsustab mõne suure multilateraalse lepingu osapooleks mitte saada, on põhimõtteliselt võimalik, et selle multilateraalse lepingu mingi keskne norm võib lepingust kõrvalejäänud riiki sellele vaatamata siduda lepinguga paralleelselt kehtiva rahvusvahelise tavaõiguse kaudu. Sellisel juhul tuleb aga tõendada, et antud norm on tõepoolest saanud rahvusvahelise tavaõiguse osaks.
Rahvusvahelise tavaõiguse kõige tähtsam ja tugevam osa on normid, millel on ius cogens’i iseloom. Tegemist on rahvusvahelise õiguse nn peremptoorsete normidega, millest kõrvalekaldumine ka “teisiti kokku leppides”, eelkõige rahvusvahelise lepingu teel, pole õiguslikult võimalik. Sellise normi suhtes ei saa riik olla ka järjepidevaks vastuseisjaks.
Rahvusvaheliste lepingute õiguse Viini konventsiooni art-test 53 ja 64 nähtuvalt muudavad sellised imperatiivsed normid, millest kõrvalekaldumine ka lepingus teisiti kokku leppides ei ole võimalik, sellega vastuolus olevad lepingunormid kehtetuks. Selliste normide hulka kuulub nt sõjalise ründe keeld. Näiteks oleks tänapäeval õiguslikult tühine 1939. a Molotovi-Ribbentropi pakti salajase lisaprotokolli sarnane kokkulepe, sest sellega rikutaks ius cogens’i iseloomu omandanud rahvusvahelise õiguse norme, eelkõige sõjalise ründe keeldu. Õigustühine oleks “pakt” mingi inimgrupi hävitamiseks jne. Siiski on ius cogens’i normide täpne haardeulatus erialakirjanduses ja riikide praktikas vaieldav.
Ius cogens’iga tihedalt seotud mõisteks on rahvusvahelise õiguse erga omnes kohustused. Erga omnes (kõikide suhtes) kohustuste teiseks pooleks pole konkreetne riik, vaid teised riigid, rahvusvaheline kogukond tervikuna. Näiteks ÜRO Rahvusvahelise Õiguse Komisjoni poolt 2001. a vastu võetud ja ÜRO Peaassamblee poolt 2002. a heaks kiidetud riigi vastutuse artiklid (vt täpsemalt Rahvusvahelise õiguse lepingud. Tallinn: Juura, 2006, lk 624 jj) näevad ette, et teatud universaalselt tüüpi kohustuste rikkumise korral võib rikkumise vastustajaks hakata ükskõik missugune teine riik. Näiteks kohustus mitte valitseda rassieraldusrežiimi (apartheidi) kasutades on erga omnes kohustuseks ja õigus (mõne arvates isegi kohustus) seda vastustada on kõigil teistel riikidel.
Riigikohus on rahvusvahelise õiguse üldtunnustatud normidena maininud näiteks kohustust järgida rahvusvahelise õiguse norme (RKPJKo 21.12.1994, III-4/A-10/94); EIÕK art-s 4 sätestatud sundtöö keeldu (RKKKo 12.12.1995, III-1/3-47/95); okupeeriva riigi käitumist okupeeritud riigi kodanike suhtes reguleerivaid norme; keeldu mobiliseerida okupeeritud riigi kodanikke ja sundida neid töötama kinnistatult sõjatööstusettevõtete juures (RKKKo 18.10.1994, III-1/3-76/94; 25.10.1994, III-1/3-82/94) või teenima okupatsioonivägedes (RKKKo 20.12.1994, III-1/3-104/94), okupeeriva riigi kohustus lähtuda okupeeritud riigi kodaniku süüdimõistmisel üksnes kriminaalseadusest (RKKKo 07.02.1995, III-1/3-4/95), okupeeritud riigi kodaniku süüdimõistmise ja karistamise võimalikkus üksnes kompetentse kohtuorgani poolt ja vastavalt kehtestatud protsessikorrale (RKKKo 07.11.1995, III-1/3-40/95).
Lisaks rahvusvahelisele tavaõigusele võivad “rahvusvahelise õiguse üldtunnustatud normide ja põhimõtetena” kõne alla tulla rahvusvahelise õiguse üldprintsiibid.
Kui konkreetne lepingu- või tavaõiguse norm rahvusvahelises õiguses pole tuvastatav, siis tuletatakse mõnikord lünga täiteks norm analoogia abil, võttes aluseks eri riikides levinud riigisisese õiguse üldprintsiibid.
Rahvusvahelise õiguse üldtunnustatud põhimõtetena § 3 lg 1 teise lause tähenduses tuleks mõista statuudi art 38 lg 1 p-s b märgitud “õiguse üldprintsiipe, mida tunnustavad tsiviliseeritud rahvad”. Tänapäeval enim levinud seisukoha järgi ei tule nende all mõista pelgalt rahvusvahelise õiguse enda põhimõtteid kitsamas tähenduses (rahvusvahelisest tavaõigusest ja konventsioonidest tuletatavad põhimõtted), vaid nende näol on tegemist algselt eri riikide õigusest pärinevate õiguspõhimõtetega. Juba Rooma õiguses tunnustatud põhimõtetest kuuluvad rahvusvahelise õiguse üldtunnustatud põhimõtete hulka näiteks lepingute täitmise kohustuse põhimõte (pacta sunt servanda), keeld kahjustada oma õiguste kasutamisel teiste õigusi ja nõue kuulata vaidluste lahendamisel ära mõlemad pooled. Eelkõige on rahvusvahelistes kohtutes inspiratsiooniallikaks olnud riigisisesed menetluspõhimõtted, näiteks nn estoppel (riik, mis on oma tegude või väljaütlemistega julgustanud teist riiki teatud asjaoludele või õiguslikule seisukohale tuginema, ei saa hiljem teha kannapööret ning hakata vastupidist väitma).
Riigikohus on (RKPJKo 30.09.1994, III-4/A-5/94) märkinud: “Demokraatlikes riikides juhindutakse õigusloomes ja õiguse rakendamisel, sealhulgas õiguse mõistmisel, seadustest ja ajalooliselt kujunenud õiguse üldpõhimõtetest.” Seega on õiguse üldpõhimõtete ülesandeks tulenevalt nende üldisemast iseloomust õigusloome ning õigusnormide tõlgendamise ja rakendamise suunamine ning võimalike õiguslünkade täitmine, võimaldamaks õiguslikult lahendada ka juhtum, mida ei reguleeri ükski täpsem norm. Arvestades tõsiasjaga, et Eesti ja EL õiguse näol on tegemist kõrgelt arenenud ja detailsete õiguskordadega, milles on oma õiguse üldprintsiibid, tundub vajadus rahvusvahelise õiguse üldprintsiipe Eesti õiguses lünga täiteks appi võtta suhteliselt vähetõenäolisena. Küll aga võib teatud õiguse üldprintsiip põhimõtteliselt üheaegselt kehtida nii riigisisese kui rahvusvahelise õiguse põhimõttena.